url로 다운받은 이미지를 cv2.imshow(코랩인 경우 from google.colab.patches import cv2_imshow)
할 경우 아래 사진과 같은 다른 색상이 나타나게 된다.
이 문제는 numpy형식인 원본은 matplot으로 보여줄 때 기본적으로 알고 있는RGB
형식으로 보여주는데 cv2에서 보여주는 형식은 BGR의 형식으로 거의 반전(?)되서
보인다.
이럴 경우 두가지의 방법이 있는데,
가장 많이 쓰이는 방법은
image = cv2.cvtColor(pic_arr, cv2.COLOR_RGB2BGR)
를 이용하면 된다. 코드를 설명하자면 cv2.cvtColor를 이용하여 원본사진인 pic_arr의 배열 RGB를
BGR형식으로 바꿔주는 구문이다.
그리고 image를 cv2_show(cv2.show)하면 원본사진으로 나오게 된다.
두번째 방식은 잘 쓰이진 않지만 인덱스 순서를 바꾸는 기본적인 형태로
temp_arr = pic_arr[:,:,::-1]
로 pic_arr를 -1로 슬라이싱해서 temp_arr에 저장한다.
그리고 똑같이 cv2_show를 하면 원본 사진이 나오고 print(temp_arr)를 하면 배열이 BGR형태로 바뀐
것으로 알 수 있다. 응용하자면 BGR을 RBG로 바꾸고 싶거나 다른 형식으로 바꾸고 싶다면
맨 위의 코드중 RBG2BGR을 BGR2RBG나 다른형식으로 바꿔주면 된다.
'영상처리 > opencv' 카테고리의 다른 글
OpenCV를 이용해 이미지 출력하기 (0) | 2021.10.26 |
---|---|
OpenCV을 이용해 카메라(웹캠) 출력 (0) | 2021.10.26 |
OpenCV 를 이용해 도형그리기(직선,원,타원) (0) | 2021.10.12 |