bskyvision RSS 태그 관리 글쓰기 방명록
2021-04-13 10:23:22
728x90

저는 영상처리 및 컴퓨터비전 관련 과제를 수행할 때 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() 함수를 쓰면 됩니다. 

댓글

방문해주신 모든 분들을 환영합니다.

* 글을 읽던 중에 궁금했던 부분은 질문해주세요.

* 칭찬, 지적, 의문, 격려, 감사표현 등을 남겨주세요.

* 최대한 답변 드리도록 노력하겠습니다.

* 욕설과 광고를 담은 댓글은 가차없이 삭제합니다.


  1. BlogIcon 꼬장스카이비전@2021.04.14 13:29 ~$ 함수를 언급할땐 기본 호출형을 꾸준히 넣어주면 좋을수도 있고, 귀찮을 수도 있겠구만

    근데 destroyAllWindows는 왜 하는거야 파괴는 창조의 반대되는 행위라구 [댓글주소]  [수정/삭제]  [답글작성]
guest@이름 ~$
guest@패스워드 ~$
guest@홈페이지주소작성 ~$

guest@댓글작성 ~$




bskyvision. Designed by bskyvision.