소스 뷰어
import cv2
import numpy as np
import matplotlib.pyplot as plt
# 이미지 읽기 (컬러 이미지, 기본적으로 BGR 형식으로 읽음)
img_bgr = cv2.imread('example.jpg')
# NumPy를 사용하여 BGR 이미지를 그레이스케일로 변환
# BGR 순서로 채널을 분리
blue_channel = img_bgr[:, :, 0]
green_channel = img_bgr[:, :, 1]
red_channel = img_bgr[:, :, 2]
# 가중치를 적용하여 그레이스케일 계산
img_gray = 0.114 * blue_channel + 0.587 * green_channel + 0.299 * red_channel
# 결과를 8비트 정수형으로 변환
img_gray = img_gray.astype(np.uint8)
# 그레이스케일 이미지 출력
plt.figure(figsize=(6, 6))
# 그레이스케일 이미지를 표시
plt.imshow(img_gray, cmap='gray')
plt.title('Grayscale Image (NumPy weighted)')
plt.axis('off')
plt.show()