この記事では、Python+SciPy+NumPyを用いて、画像を2値化する方法をソースコード付きで解説します。
画像の2値化
SciPyで読み込んだ画像をNumPy配列に格納し、NumPyで2値化処理してみました。
ソースコード
サンプルプログラムのソースコードです。(Python3+SciPy+NumPy)
# -*- coding: utf-8 -*- import numpy as np from scipy import ndimage import matplotlib.pyplot as plt def main(): # 入力画像をグレースケールで読み込み img = ndimage.imread('input.jpg', mode='L') # 入力画像をコピー th = img.copy() # 2値化 img[img<160] = 0 img[img>=160] = 255 # 入力画像と2値化画像をグラフにプロット plt.subplot(121) plt.imshow(img, cmap = 'gray') plt.title('Input Image') plt.subplot(122) plt.imshow(th, cmap = 'gray') plt.title('Result Image') plt.show() if __name__ == "__main__": main()
実行結果
サンプルプログラムの実行結果です。
■入力画像(左)と出力画像(右)
おすすめ記事
PythonでOpenCV入門 サンプル集
【Python】画像処理プログラミング入門
【画像処理入門】アルゴリズム&プログラミング
コメント