GrayScale변환 후 출력이 다르게 나오는 이유
matplotlib.pyplot.imshow()로 GrayScale 이미지를 보면 초록색으로 뜨는 경우
Grayscale 변환은 제대로 완료된 것이 맞다. 출력을 제대로 안 하고 있었던 것이다.
Grayscale image는 단일 채널 이미지이다. 실제로 원본 이미지와 Grayscale 변환한 이미지의 shape은 다음과 같다.
예)
print(image.shape) #(722, 547, 3)
print(gray_image.shape) # (722, 547)
matplotlib.pyplot.imshow()에는 인자로 cmap(ColorMAP)이 있다.
단일 채널 이미지를 어느 색상 채널에 매핑하여 출력할지는 matplotlib.pyplot.imshow()의 마음이다.
따라서 이미지를 의도한대로 출력하기 위해서는 Colormap을 지정해주어야 한다.
인자로 cmap='gray'를 지정해주면 정상적으로 회색 이미지가 출력된다.
plt.imshow(gray_image, cmap='gray')
import numpy as np
import matplotlib.pyplot as plt
from PIL import Image
image = Image.open('./2d_images/vision.JPG')
gray_image=image.convert('L')
plt.axis('off')
plt.imshow(gray_image, cmap='gray')
출처 : https://driip.me/e51d6c89-8ab4-412f-8233-e8b09f0d62d4