저는 영상처리 및 컴퓨터비전 관련 과제를 수행할 때 opencv와 pillow를 자주 사용하곤 합니다. 그러다보니 이미지를 opencv (cv2)에 맞게 변환시켜야 할 때가 있고, pillow에 맞게 변환시켜야 할 때도 있습니다. 변환 과정 없이 그냥 사용하면 에러가 납니다. 서로 규격이 안 맞는 것이죠.
오늘은 cv2.imread()로 읽은 이미지를 pillow 이미지로 변환하는 것에 대해 살펴보도록 하겠습니다. cv2로 읽은 이미지는 넘파이 배열에 담겨집니다. 이것을 pillow 이미지로 변환하려면 pillow (PIL) 패키지의 Image.fromarray() 함수가 필요합니다.
1
2
3
4
5
6
7
8
9
10
11
|
import cv2
from PIL import Image
cv2_img = cv2.imread("test.JPG", cv2.IMREAD_COLOR)
cv2.imshow("cv2 image", cv2_img) # cv2 이미지 보기
cv2.waitKey(0)
cv2.destroyAllWindows()
pil_img = Image.fromarray(cv2_img) #cv2 이미지를 pil 이미지로 변환
pil_img.show() # pil 이미지 보기
|
cs |
이렇게 해주면 cv2 이미지가 pil 이미지로 변환되어 화면에 잘 출력됩니다.
참고로 pil 이미지를 cv2 이미지로 변환할 때는 np.array() 함수를 쓰면 됩니다.
'Dev > python' 카테고리의 다른 글
[pandas] dataframe 모든 열 또는 행이 안 보일 때 대처 방법 (0) | 2021.04.20 |
---|---|
[python] 리스트의 중복된 요소들 중에 고유한 요소들을 알고 싶다면, numpy.unique() (0) | 2021.04.19 |
[python] .ipynb 파일을 .py 파일로 변환하는 방법 (8) | 2021.04.16 |
[python] pytesseract 사용중 print 안 되는 애러 해결법 (2) | 2021.04.14 |
[python] 리스트 안의 숫자 요소들을 문자로 변경하려면, map() 함수 사용 (4) | 2021.04.12 |
[anaconda+python] spyder 5.0.0 버전 열자마자 나오는 에러 메시지(You have missing dependencies! # Mandatory: spyder_kernels)에 관하여 (0) | 2021.04.10 |
[python+openpose] openpose 라이브러리를 사용해서 관절 포인트 검출하기 (window 10 환경) (7) | 2021.04.05 |
[python] 파일의 확장자를 알려주는 함수, os.path.splitext() (0) | 2021.04.02 |