【Python/NumPy】画像の2値化

この記事では、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】画像処理プログラミング入門
【画像処理入門】アルゴリズム&プログラミング

コメント