1. 概要
PythonのOpenCVを使って特定の色の物体の座標を検出するプログラムのサンプルを書いた.青色の物体がどこにあるかを検出できるようにしてあります.手法は以下のような手順です
- HSV色空間に変換して
- 青色を部分を抽出して
- 抽出した各部分をラベリングして
- ラベリングした塊の面積,座標を計算
- 最も面積の大きい座標を返す
2. ソースコード
3. 結果
test()でsamle.jpgに対して処理を行います.またmain()でウェブカメラの画像をリアルタイムで処理します.以下はsample.jpgに処理を適用した結果です.
4.参考
- OpenCV - findContours() による輪郭抽出 - Pynote
- OpenCV - 輪郭を近似する、面積を求める、Bounding Box を求める方法について - Pynote
- Python, OpenCVで画像ファイルの読み込み、保存(imread, imwrite) | note.nkmk.me
昨日からPythonの学習を始めブログを拝見している者です。
返信削除Opencvライブラリを用い、やりたかった内容と酷似していた為、
とりあえず記載頂いているソースコードを読み解こうと思ったのですが
上手く実行することができません。
差し障りなければ以下お答え願えませんでしょうか。
状況としてはステップオーバー(1行ずつ実行した際に
defの中身とtestの中身を飛ばして実行しているように見えます、結果は出力されません)
1.frame(14行目)には何か指定しなければならないのでしょうか
2.img = cv2.imread("sample.jpg") (51行目)をCドライブ内で
絶対参照で指定していますがこれは問題でしょうか。(imwriteも同様)
3.他に当方が指定する項目はありますでしょうか
初心者の質問で分かり辛く申し訳ありませんが宜しくお願い致します。