🐷
【OpenCV】- 二値化(閾値処理)を実施する
執筆日
2025/7/14
やること
OpenCVを使い二値化の検証を実施します。
使う画像
弊社のロゴを使います。なんでも大丈夫です。

二値化(閾値を自分で設定する)
main.py
import cv2
# 画像の読み込み
img = cv2.imread("<ファイルパス>", 0)
# 閾値の設定
threshold = 100
# 二値化(閾値100を超えた画素を255にする。)
ret, img_thresh = cv2.threshold(img, threshold, 255, cv2.THRESH_BINARY)
print(f"使用された閾値: {ret}")
# 結果画像を保存
cv2.imwrite("<保存するファイル名/パス>", img_thresh)
print("保存しました: ./logo_binary.png")
↓出力結果

二値化(閾値を自動的に設定する)
main.py
import cv2
# 画像の読み込み
img = cv2.imread("./logo.png", 0)
# Otsu法による自動閾値設定
ret, img_otsu = cv2.threshold(img, 0, 255, cv2.THRESH_OTSU)
print(f"Otsu法による自動閾値: {ret}")
# 結果画像を保存
cv2.imwrite("./logo_binary_otsu.png", img_otsu)
print("保存しました: ./logo_binary_otsu.png.png")
閾値

結果

まとめ
二値化についてちょっと検証してみました。
FAXのOCRを試しているときに使ってみたところ、認識精度が向上しました。
せっかくなので、他のOpenCVの画像処理もこの機会にいろいろ触ってみようかなと思ってます。
Discussion