🐷

【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