PythonとOpenCVを使用して画像の二値化を行う方法について説明します。二値化は、画像の画素を関心がある領域とそうでない領域に分ける処理です。
OpenCVのcv2.threshold関数
OpenCVのcv2.threshold
関数を使用して二値化を行います。この関数は、ある1つの閾値を決めて、二値化を行います。
import cv2
import numpy as np
# 画像の読み込み
img = cv2.imread("./data/Lena.jpg", 0)
# 閾値の設定
threshold = 100
# 二値化(閾値100を超えた画素を255にする)
ret, binary = cv2.threshold(img, threshold, 255, cv2.THRESH_BINARY)
上記のコードでは、閾値を100と設定し、閾値を超えた画素を255に設定しています。
二値化の種類
二値化には大域的二値化と適応的二値化の2つの方法があります。
- 大域的二値化:全画素を同じ閾値で変換します。
- 適応的二値化:領域ごとに異なる閾値で変換します。
明るさが画像全体で均一でない場合、大域的二値化では上手く二値化ができないかもしれません。その場合は、適応的二値化を検討してください。
以上がPythonとOpenCVを使用した画像の二値化の基本的な方法です。これらの知識を活用して、さまざまな画像処理に挑戦してみてください。