import cv2
img_path = "./imgs/IU.png"
img = cv2.imread(img_path, cv2.IMREAD_GRAYSCALE) #그레이 스케일로 읽기
if img is not None:
cv2.imshow('IMG', img) # 이미지 표시
cv2.waitKey() # 키 입력 대기
cv2.destroyWindow() # 창 닫기
else:
print('No Image File.')
IMREAD_GRAYSCALE - 1채널로 이미지를 읽어온다.(1채널 = 2^8 = 256가지의 흑백 톤으로 불러오기)
IMREAD_UNCHANGED - 원본 그대로 불러옴
IMREAD_COLOR - 3채널 RGB 이미지 사용(1채널^3 = 256^3가지의 RGB 색상 톤으로 불러옴)
IMREAD_REDUCED_COLOR_[2, 4, 8] - 3채널 이미지, [1/2, 1/4, 1/8] 크기
IMREAD_REDUCED_GRAYSCALE_[2, 4, 8] - 1채널 이미지, [1/2, 1/4, 1/8] 크기
import cv2
import numpy as np
import matplotlib.pyplot as plt
IMREAD_ANYCOLOR = cv2.imread('./imgs/IU.png', cv2.IMREAD_ANYCOLOR)
IMREAD_ANYDEPTH = cv2.imread('./imgs/IU.png', cv2.IMREAD_ANYDEPTH)
IMREAD_COLOR = cv2.imread('./imgs/IU.png', cv2.IMREAD_COLOR)
IMREAD_GRAYSCALE = cv2.imread('./imgs/IU.png', cv2.IMREAD_GRAYSCALE)
IMREAD_REDUCED_COLOR_2 = cv2.imread('./imgs/IU.png', cv2.IMREAD_REDUCED_COLOR_2)
IMREAD_REDUCED_COLOR_4 = cv2.imread('./imgs/IU.png', cv2.IMREAD_REDUCED_COLOR_4)
IMREAD_REDUCED_COLOR_8 = cv2.imread('./imgs/IU.png', cv2.IMREAD_REDUCED_COLOR_8)
IMREAD_REDUCED_GRAYSCALE_2 = cv2.imread('./imgs/IU.png', cv2.IMREAD_REDUCED_GRAYSCALE_2)
IMREAD_REDUCED_GRAYSCALE_4 = cv2.imread('./imgs/IU.png', cv2.IMREAD_REDUCED_GRAYSCALE_4)
IMREAD_REDUCED_GRAYSCALE_8 = cv2.imread('./imgs/IU.png', cv2.IMREAD_REDUCED_GRAYSCALE_8)
IMREAD_UNCHANGED = cv2.imread('./imgs/IU.png', cv2.IMREAD_UNCHANGED)
imgs = {'IMREAD_ANYCOLOR':IMREAD_ANYCOLOR,
'IMREAD_ANYDEPTH':IMREAD_ANYDEPTH,
'IMREAD_COLOR':IMREAD_COLOR,
'IMREAD_GRAYSCALE':IMREAD_GRAYSCALE,
'IMREAD_REDUCED_COLOR_2':IMREAD_REDUCED_COLOR_2,
'IMREAD_REDUCED_COLOR_4':IMREAD_REDUCED_COLOR_4,
'IMREAD_REDUCED_COLOR_8':IMREAD_REDUCED_COLOR_8,
'IMREAD_REDUCED_GRAYSCALE_2':IMREAD_REDUCED_GRAYSCALE_2,
'IMREAD_REDUCED_GRAYSCALE_4':IMREAD_REDUCED_GRAYSCALE_4,
'IMREAD_REDUCED_GRAYSCALE_8':IMREAD_REDUCED_GRAYSCALE_8,
'IMREAD_UNCHANGED':IMREAD_UNCHANGED}
for i, (k, v) in enumerate(imgs.items()):
plt.subplot(5, 3, i+1)
plt.title(k)
plt.imshow(v)
plt.xticks([])
plt.yticks([])
plt.show()
gray와 color의 차이만 뚜렷해 보이고 같은 계열끼리는 비슷한 느낌이다.
그런데 원래 색상이 저게 아닌데...
plt로 보여주는 과정에서 뭔가 역변한듯
추가
imread를 통해서 읽어오는 이미지는 BRG형태이기 때문에 보통 인식하는 RGB형태로 변환해야 색상이 이상해지지 않는다. cv.cvtColor(변환할 이미지, cv2.COLOR_BGR2RGB)를 통해 변환할 수 있다.
'OpenCV' 카테고리의 다른 글
[OpenCV_01_05_카메라 불러오기] (0) | 2022.12.08 |
---|---|
[OpenCV_01_04_비디오 불러오기] (1) | 2022.12.08 |
[OpenCV_01_03_이미지 저장하기] (0) | 2022.12.07 |
[OpenCV_01_01_이미지 읽어오기] (0) | 2022.12.06 |
[OpenCV_00_내가 이걸 왜 하려고 했지??] (0) | 2022.12.06 |