Python を使用して画像内のオブジェクトを追跡する方法
オブジェクト追跡は、コンピューター ビジョンの分野における重要なアプリケーションの 1 つであり、連続したフレーム内の特定のオブジェクトを追跡できます。画像データの対象となります。 Python は、目標の追跡を比較的簡単にする多くのライブラリとツールを提供する強力なプログラミング言語です。この記事では、Python と OpenCV ライブラリを使用して画像のオブジェクト追跡を実行する方法を紹介します。
まず、コードを書き始める前に、OpenCV ライブラリをインストールする必要があります。次のコマンドを使用してインストールできます:
pip install opencv-python
次に、ターゲット追跡を実装するコードを Python で記述します。以下は、OpenCV を使用して画像内の青いオブジェクトを追跡する方法を示す簡単なコード例です。
import cv2 import numpy as np # 定义蓝色的HSV范围 lower_blue = np.array([90, 50, 50]) upper_blue = np.array([130, 255, 255]) # 初始化摄像头 cap = cv2.VideoCapture(0) while True: # 读取摄像头捕获的图像 ret, frame = cap.read() # 将图像从BGR转换为HSV颜色空间 hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) # 创建一个掩膜,将满足蓝色范围内的像素点设置为白色(255),其余设置为黑色(0) mask = cv2.inRange(hsv, lower_blue, upper_blue) # 对掩膜进行模糊处理,以去除噪声 mask = cv2.blur(mask, (5, 5)) # 找到图像中的轮廓 contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) if len(contours) > 0: # 找到最大的轮廓 max_contour = max(contours, key=cv2.contourArea) # 计算最小外接矩形 x, y, w, h = cv2.boundingRect(max_contour) # 在图像上绘制矩形 cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2) # 显示图像 cv2.imshow("Tracking", frame) # 按下ESC键退出循环 if cv2.waitKey(1) == 27: break # 释放摄像头和窗口 cap.release() cv2.destroyAllWindows()
上記のコードでは、最初に青色の HSV 範囲を定義します。次に、カメラを初期化し、無限ループで画像を読み取ります。各ループ反復で、画像を BGR から HSV に変換し、マスクを作成し、マスクをぼかしてノイズを除去します。次に、画像内の輪郭を見つけて、最大の輪郭を見つけます。次に、最小の囲み四角形を計算し、その四角形を画像上に描画します。最後に、トレース結果を表示し、ESC キーが押されたときにループを終了します。最後に、カメラを放してウィンドウを閉じます。
上記のコードを使用すると、カメラでキャプチャされた画像内の青いオブジェクトを追跡できます。もちろん、他の色のオブジェクトを追跡したい場合は、HSV 範囲を青に変更するだけです。
要約すると、Python と OpenCV ライブラリは、画像処理とターゲット追跡のための便利な方法を多数提供します。対応するコードを記述することで、画像内の関心のあるオブジェクトを簡単に追跡できます。この記事が、目標追跡を開始し、この興味深いタスクを Python で実装するのに役立つことを願っています。
以上がPython を使用して写真上のターゲット追跡を行う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。