ホームページ  >  記事  >  バックエンド開発  >  Pythonを使って画像を二値化する方法

Pythonを使って画像を二値化する方法

王林
王林オリジナル
2023-08-26 13:45:394048ブラウズ

Pythonを使って画像を二値化する方法

Python を使用して画像を 2 値化する方法

要約:
デジタル画像処理では、2 値化はカラーまたはグレースケール画像を変換する非常に一般的な処理方法です。 2 つの値 (通常は白と黒) のみを持つ画像に変換します。画像を 2 値化すると、画像の輪郭と特徴が強調表示され、その後の画像分析操作が容易になります。この記事では、Python を使用して画像を 2 値化する方法を紹介し、読者の理解を助けるコード例を示します。

1. 必要なライブラリを導入する
始める前に、いくつかの必要なライブラリを導入する必要があります。 Python には、PIL (Python Imaging Library) や OpenCV など、選択できる画像処理ライブラリが多数あります。この記事では画像のバイナリ処理に PIL ライブラリを使用するため、最初に PIL ライブラリをインストールして導入する必要があります。

コード例:

from PIL import Image

2. 元の画像を読み取って表示する
バイナリ処理の前に、処理された画像を処理できるように、まず元の画像を読み取って表示する必要があります。結果がより直感的に理解できるようになります。

コード例:

# 读取原始图片
image = Image.open('original_image.jpg')

# 显示原始图片
image.show()

3. 画像の二値化処理
次に画像を二値化します。 PIL ライブラリでは、画像オブジェクトはピクセル値で構成される行列であり、各ピクセルの値はその点に対応する色情報を表します。画像を二値画像に変換するには、ある閾値に従って画素値を区別する必要があり、閾値より大きい画素は白、閾値より小さい画素は黒となります。

コード例:

# 设置二值化阈值
threshold = 128

# 获取图片的宽度和高度
width, height = image.size

# 创建一个新的图片对象,用来存储二值化处理后的结果
binary_image = Image.new('1', (width, height))

# 遍历原始图片的每个像素点
for y in range(height):
    for x in range(width):
        # 获取当前像素点的像素值
        pixel = image.getpixel((x, y))
        # 判断像素值是否大于阈值,如果大于则设置为白色,否则设置为黑色
        if pixel >= threshold:
            binary_image.putpixel((x, y), 255)
        else:
            binary_image.putpixel((x, y), 0)

# 显示二值化处理后的结果
binary_image.show()

4. 2値化画像の保存と表示
最後に、処理した2値化画像をローカルに保存して表示します。

コード例:

# 保存二值化图片到本地
binary_image.save('binary_image.jpg')

# 显示二值化图片
binary_image.show()

概要:
この記事では、Python を使用して画像を 2 値化する方法を紹介します。元のイメージを読み取り、二値化しきい値を設定し、各ピクセルを調べ、ピクセル値のサイズに応じてピクセルの色を設定することにより、カラーまたはグレースケール イメージをバイナリ イメージに変換する効果を得ることができます。このバイナリ処理方法は、輪郭検出、画像セグメンテーション、文字認識などの多くの画像処理アプリケーション シナリオで使用できます。この記事のサンプルコードが、読者の皆様の画像二値化処理方法の理解を深め、習得する一助となれば幸いです。

以上がPythonを使って画像を二値化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。