コンピュータ サイエンスにおいて、画像認識は常に重要な分野です。画像認識を使用すると、コンピューターに画像内の内容を認識および分析させ、処理させることができます。 Python は、画像認識を含むさまざまな分野で使用される非常に人気のあるプログラミング言語です。この記事ではPythonの正規表現を使って画像認識を行う方法を紹介します。
正規表現は、特定のパターンに一致するテキストを検索するために使用されるテキスト パターン マッチング ツールです。 Python には、正規表現処理に使用できる組み込みの「re」モジュールがあります。画像認識に正規表現を使用する一般的なプロセスは次のとおりです。
以下は、Python 正規表現を使用して顔を含む画像を検索する方法の例です:
import re import cv2 import numpy as np # 读入图像文件并转换为二进制数据 with open("image.jpg", "rb") as f: img_data = f.read() # 使用正则表达式查找人脸 match = pattern.search(img_data) if match: # 将二进制数据转换为 NumPy 数组然后进行图像显示 img_array = np.frombuffer(img_data, dtype=np.uint8) img = cv2.imdecode(img_array, flags=1) cv2.imshow("Image", img) cv2.waitKey(0)
コード行を見てみましょう。行:
import re import cv2 import numpy as np
これらは必要な Python モジュールです:
# 读入图像文件并转换为二进制数据 with open("image.jpg", "rb") as f: img_data = f.read()
Pythonの組み込み関数「open」を使って、「image.jpg」という名前の画像ファイルを読み込み、バイナリデータに変換します。このコード行は、ファイルが現在のディレクトリにあり、拡張子が .jpg であることを前提としています。
# 使用正则表达式查找人脸 match = pattern.search(img_data)
ここでは、正規表現を使用してバイナリ データ内の特定のパターンを検索します。 「パターン」正規表現オブジェクトを定義し、match() メソッドを使用してパターンを見つけます。私たちのパターンは、16 進値で表されるいくつかの隣接するバイトで構成されるバイト シーケンスです。このバイト シーケンスは JPEG ファイル形式のファイル ヘッダーの一部であり、ファイルに JFIF (JPEG File Interchange Format) 形式でエンコードされた画像が含まれていることを示します。
if match: # 将二进制数据转换为 NumPy 数组然后进行图像显示 img_array = np.frombuffer(img_data, dtype=np.uint8) img = cv2.imdecode(img_array, flags=1) cv2.imshow("Image", img) cv2.waitKey(0)
パターンが見つかった場合は、バイナリ データを NumPy 配列に変換し、OpenCV ライブラリの「imdecode」関数を使用して画像に変換し直します。次に、OpenCV の imshow() 関数を使用してそれを表示し、ユーザーがキーを押す (つまり、画像ウィンドウを閉じる) まで waitKey() 関数を使用してプログラムを一時停止します。
全体として、画像認識に Python 正規表現を使用することは、他のコンピューター ビジョン技術ほど正確ではない可能性がありますが、実行可能なアプローチです。これを使用すると、通常の画像内の特定のバイナリ パターンを見つけることができ、ヘッダー、ナビゲーション、またはメタデータ情報を検出するために使用できます。正規表現は、画像ファイル内の特定の情報を検索するのに役立つ非常に強力なツールです。
以上が画像認識に Python 正規表現を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。