LoginSignup
2
3

Pythonで画像ファイルを読み込み白色以外を検出してメッセージを出力させる方法

Last updated at Posted at 2023-01-28

今回は、Pythonでopencvライブラリをつかって画像ファイルを読み込み、白色以外を検出して判別メッセージを出力させてみます。

白色以外を検出してメッセージを出力するには、

  • 1.cv2.inRange()関数を使用して白色の範囲に収まらない画素を抽出します。
  • 2.np.count_nonzero()関数を使用して、抽出された画素の数を数え、それが0でなければメッセージを出力します。
  • 3.検出結果で白以外の色が検出されたら"画像の中に白以外のものがあります"と結果を出し、検出されなければ"画像は真っ白です"と表示されます。
  • 4.OpenCVライブラリはpipをつかって事前にインストールしておきます。
> pip install opencv-contrib-python

では実際にやっていきます。

1. 画像イメージの作成

①白以外の色を含む画像
ペイントで日本の国旗を作成してflag.pngとファイルに保存しておきます。

  • ファイル名:flag.png
    flag.png

2. Pythonコード

次のpythonコードを用意しました。

  • ファイル名:colorcheck.py
colorcheck.py
import cv2
import numpy as np

# 画像の読み込み
img = cv2.imread("flag.png")

# 白色の範囲を指定
lower_white = np.array([0, 0, 200])
upper_white = np.array([180, 30, 255])

# 白色の範囲に収まらない画素を抽出
non_white_mask = cv2.inRange(img, lower_white, upper_white)

# 抽出された画素の数を数える
non_white_pixels = np.count_nonzero(non_white_mask)

# 白色以外の画素があればメッセージを出力
if non_white_pixels > 0:
    print("画像の中に白以外のものがあります")
else:
    print("画像は真っ白です")

この例では、白色の範囲が BGR の [0, 0, 200]から[180, 30, 255]に指定されています。白色の範囲は、画像や撮影条件によって異なる場合があるため、適切な範囲を指定する必要があります。

3. 実行する

> python3 colorcheck.py

画像の中に白以外のものがあります

実行後、画像の中に白以外のものがありますとメッセージが出力された。
以上になります。
この情報が皆様の何らかのお役に立てることができますように。


2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3