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 サイトの他の関連記事を参照してください。

Tomergelistsinpython、あなたはオペレーター、extendmethod、listcomfulting、olitertools.chain、それぞれの特異的advantages:1)operatorissimplebutlessforlargelist;

Python 3では、2つのリストをさまざまな方法で接続できます。1)小さなリストに適したオペレーターを使用しますが、大きなリストには非効率的です。 2)メモリ効率が高い大規模なリストに適した拡張方法を使用しますが、元のリストは変更されます。 3)元のリストを変更せずに、複数のリストをマージするのに適した *オペレーターを使用します。 4)Itertools.chainを使用します。これは、メモリ効率が高い大きなデータセットに適しています。

Join()メソッドを使用することは、Pythonのリストから文字列を接続する最も効率的な方法です。 1)join()メソッドを使用して、効率的で読みやすくなります。 2)サイクルは、大きなリストに演算子を非効率的に使用します。 3)リスト理解とJoin()の組み合わせは、変換が必要なシナリオに適しています。 4)redoce()メソッドは、他のタイプの削減に適していますが、文字列の連結には非効率的です。完全な文は終了します。

pythonexexecutionistheprocessoftransforningpythoncodeintoexecutabletructions.1)interpreterreadSthecode、変換intobytecode、thepythonvirtualmachine(pvm)executes.2)theglobalinterpreeterlock(gil)管理委員会、

Pythonの主な機能には次のものがあります。1。構文は簡潔で理解しやすく、初心者に適しています。 2。動的タイプシステム、開発速度の向上。 3。複数のタスクをサポートするリッチ標準ライブラリ。 4.強力なコミュニティとエコシステム、広範なサポートを提供する。 5。スクリプトと迅速なプロトタイピングに適した解釈。 6.さまざまなプログラミングスタイルに適したマルチパラダイムサポート。

Pythonは解釈された言語ですが、コンパイルプロセスも含まれています。 1)Pythonコードは最初にBytecodeにコンパイルされます。 2)ByteCodeは、Python Virtual Machineによって解釈および実行されます。 3)このハイブリッドメカニズムにより、Pythonは柔軟で効率的になりますが、完全にコンパイルされた言語ほど高速ではありません。

useaforloopwhenteratingoverasequenceor foraspificnumberoftimes; useawhileloopwhentinuninguntinuntilaConditionismet.forloopsareidealforknownownownownownownoptinuptinuptinuptinuptinutionsituations whileoopsuitsituations withinterminedationations。

pythonloopscanleadtoErrorslikeinfiniteloops、ModifiningListsDuringiteration、Off-Oneerrors、Zero-dexingissues、およびNestededLoopinefficiencies.toavoidhese:1)use'i


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

Dreamweaver Mac版
ビジュアル Web 開発ツール
