Python에 의한 이미지 처리 100개 노크 #3 2진화

소개



아무래도, 라무입니다.
이것 또한 화상 처리에서는 친숙한 이진화를 구현합니다.

세 번째: 이진화



이진화는 이미지를 흑백 2색만 흑백 이미지로 변환하는 과정입니다.
일반적으로 그레이 스케일 이미지에 대해 수행합니다.
또한 이진화 시 임계값이라고 하는 기준의 값을 결정합니다. 임계값보다 작은 픽셀 값은 흰색으로, 임계값 이상의 픽셀 값을 갖는 픽셀은 검정으로 대체됩니다.

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


def binarization(img):
  # 画像コピー
  dst = img.copy()
  # グレースケール化
  gray = cv2.cvtColor(dst, cv2.COLOR_BGR2GRAY)

  # 閾値
  th = 128
  # 二値化
  idx = np.where(gray < th)
  gray[idx] = 0
  idx = np.where(gray >= th)
  gray[idx] = 255

  return gray


# 画像読込
img = cv2.imread('../assets/imori.jpg')

# 二値化
mono = binarization(img)

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



이미지 왼쪽은 입력 이미지이고 이미지 오른쪽은 출력 이미지입니다.
회색조 이미지와 같이 회색이 없고 흰색과 검정만의 이미지가 되어 있습니다.

결론



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

좋은 웹페이지 즐겨찾기