이미지 = 숫자배열 (Array)

image.png

디지털 이미지는 픽셀(Pixel)의 집합이며, 각 픽셀은 숫자로 표현합니다.

OpenCV에서 이미지는 NumPy의 ndarray 형태로 저장합니다.

NumPy 자료를 봤다면 흑백 이미지는 2D, 컬러이미지는 3D 배열로 저장되는 것을 알 고 있을 것입니다.

OpenCV의 색상 순서: BGR

일반적인 그래픽 모듈들은 RGB 순서를 사용하고 있지만 OpenCV는 BGR 순서를 기본으로 사용합니다.

과거 Intel 영상 포맷이 효율성을 위해 BGR 순서를 사용했기 때문입니다.

따라서 Matplotlib으로 표시할땐 BGR을 RGB로 변환하는 것이 필요합니다.

# cv2 기능불러오기
import cv2
import matplotlib.pyplot as plt
# img 변수엔 본인 경로를 찾아 넣으면 됩니다.
img = cv2.imread(r"C:\\Users\\danny\\Desktop\\You're rejected too.png", cv2.IMREAD_COLOR)
# 이미지 보여주기 모델에 변수 불러오기
cv2.imshow("model", img)
img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.imshow(img_rgb)
plt.show()

# 키 대기
cv2.waitKey(0)
# 이미지 종료
cv2.destroyAllWindows()

cv2에서는 BGR 배열을 RGB 배열로 변환하는 여러 함수를 지원합니다.

이번 코드에서는 img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) 를 사용하였습니다.

image.png

오른쪽처럼 Matpoltlib에서도 정상적으로 이미지가 출력되는것을 확인 할 수 있습니다.

Gray와 Binary 이미지

컬러 이미지는 많은 정보를 가지고 있기 때문에 연산량이 많습니다.