Python에 의한 이미지 처리 100개 노크 #2 그레이 스케일화

소개



아무래도, 라무입니다.
화상 처리에서는 친숙한 그레이 스케일화를 구현합니다.

2번째: 그레이 스케일화



그레이 스케일은 다양한 화상 처리의 전처리로서 사용되는 경우가 많습니다. 이미지 처리를 배우면 반드시 알아두자.
그레이스케일화란 이미지를 흑색, 백색 및 그 중간색인 회색의 농담을 이용하여 이미지를 표현하는 수법입니다.
흑백 이미지는 흑백 2색만이지만, 회색조 이미지에서는 보통 256색을 사용합니다.

각 픽셀은 다음 식으로 계산됩니다.
$$
P = 0.2126 R + 0.7152 G + 0.0722 B
$$

grayscale.py
import cv2
import matplotlib.pyplot as plt
import numpy as np
plt.gray()

def grayscale(img):
  # グレースケール画像用配列作成
  dst = np.zeros((img.shape[0], img.shape[1]))

  # グレースケール化
  dst[:,:] = (0.2126*img[:,:,2] + 0.7152*img[:,:,1] + 0.0722*img[:,:,0]).astype(np.uint8)

  return dst


# 画像読込
img = cv2.imread('image.jpg')

# グレースケール化
gray = grayscale(img)

# 画像保存
cv2.imwrite('result.jpg', gray)
# 画像表示
plt.imshow(gray)
plt.show()



이미지 왼쪽은 입력 이미지이고 이미지 오른쪽은 출력 이미지입니다.
확실히 그레이 스케일 화상이 작성되고 있군요.

결론



만약, 질문이 있는 분이 계시면 부담없이 부디.
imori_imori씨의 Github 에 공식의 해답이 실려 있으므로 꼭 그쪽도 확인해 보세요.

좋은 웹페이지 즐겨찾기