본문 바로가기
파이썬

파이썬 로딩시 컬러 이미지에 잘못된 색상을주는 OpenCV

by º기록 2020. 10. 31.
반응형

Python OpenCV에서 컬러 이미지를로드하고 똑같이 플로팅하고 있습니다. 그러나 내가 얻은 이미지에는 색상이 모두 섞여 있습니다.

다음은 코드입니다.

import cv2
import numpy as np
from numpy import array, arange, uint8 
from matplotlib import pyplot as plt


img = cv2.imread('lena_caption.png', cv2.IMREAD_COLOR)
bw_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

images = []
images.append(img)
images.append(bw_img)

titles = ['Original Image','BW Image']

for i in xrange(len(images)):
    plt.subplot(1,2,i+1),plt.imshow(images[i],'gray')
    plt.title(titles[i])
    plt.xticks([]),plt.yticks([])

plt.show()

다음은 원본 이미지입니다.


그리고 여기에 플로팅 된 이미지가 있습니다.


 

해결 방법

 

OpenCV는 BGR을 이미지의 기본 색상 순서로 사용하고 matplotlib는 RGB를 사용합니다. matplotlib에서 OpenCv로로드 된 이미지를 표시하면 채널이 뒤에서 앞으로 표시됩니다.

이를 수정하는 가장 쉬운 방법은 그레이 스케일 이미지를 만들 때와 마찬가지로 OpenCV를 사용하여 명시 적으로 RGB로 다시 변환하는 것입니다.

RGB_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

그리고 그것을 당신의 음모에서 사용하십시오.

 

참조 페이지 https://stackoverflow.com/questions/39316447

 

 

반응형

댓글