root@bskyvision: ~#
방명록
태그
RSS

<닫기>

3,585,391/3,798/595

프로필사진
수많은 소음 속에서 신호를 찾아가는 bskyvision입니다.


<닫기>

  • leon_choi이(가) 08.10에 작성한 댓글: 멋쟁이.
  • 꼬장이이(가) 07.25에 작성한 댓글: test.

<닫기>

2021-04-13 10:23:22

저는 영상처리 및 컴퓨터비전 관련 과제를 수행할 때 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. 꼬장스카이비전이(가) 2021.04.14 13:29에 작성한 댓글:
    함수를 언급할땐 기본 호출형을 꾸준히 넣어주면 좋을수도 있고, 귀찮을 수도 있겠구만

    근데 destroyAllWindows는 왜 하는거야 파괴는 창조의 반대되는 행위라구
      주소   수정/삭제   답글
이름
비밀번호
홈페이지
비밀여부