問題タブ [opencv-contour]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
529 参照

c++ - 輪郭が閉じていないため、cv::findContours を使用してバイナリ マスクから最大の領域オブジェクトを見つけることができません。それを防ぐ方法は?

形状の特徴 (例: 面積、輪郭の長さなど) に基づいて、ビデオ ソースで暗い (ほぼ黒い) オブジェクト検出を実行しようとしていますが、バイナリ マスクでの輪郭の検出に問題があります。

オブジェクトの形状が変化せず、輪郭が 1 つのコンパクトなブロブのみを含む単純なマスクから派生している場合でも、輪郭が閉じていない場合があります (CV_FILLED オプションで表示しているため、多くのフレームで輪郭がそのため、計算された領域は実際には信頼できません (値は数ピクセルまで低下します)。

また、オブジェクトの輪郭が閉じていない場合、長さが想定の約 2 倍になることにも気付きました (これは理にかなっています)。

単純なブロブの輪郭が開いたり閉じたりするのはなぜですか? また、それらを常に閉じるようにするにはどうすればよいですか? 私はすでに凸包を試し、輪郭の最初の点をその最後にコピーしましたが、うまくいきませんでした。

私のアプローチの手順は次のとおりです。

  1. 画像をグレースケールに変換
  2. しきい値処理、侵食、膨張を実行してノイズを除去し、「形状」を改善します
  3. Canny エッジ検出器を使用してエッジのみを取得する
  4. 等高線とその領域を取得するには、findContours を使用します。
  5. arcLength を使用して、等高線およびその他のフィーチャの長さを計算します。
0 投票する
1 に答える
4020 参照

python - 「関数 cvStartFindContours では、FindContours は 8uC1 および 32sC1 の画像のみをサポートしています」というエラーが表示される

ヒストグラム逆投影法やモルフォロジー フィルタリングなどの画像処理手法を実行しようとしていますが、処理された画像の輪郭を見つけようとすると、エラーが発生し続けます。

処理した画像を 8uC1 または 32sC1 に変換する方法をいくつか見つけようとしましたが、失敗しました。画像内の輪郭を見つけることができるように、画像をタイプ 8uC1 またはタイプ 32sC1 に変換する方法を誰か教えてもらえますか?

コード:

0 投票する
3 に答える
2564 参照

c++ - C++ と OpenCV で輪郭の自己交差を検出するには?

自己交差で輪郭をテストする必要がありますが、その実装方法がわかりません。または、cv::Mat で自己交差のない輪郭のみを検出するにはどうすればよいですか?

ここに画像の説明を入力

F.ex。左の輪郭は一致する必要があり、右の輪郭は一致しません

0 投票する
1 に答える
691 参照

c++ - findContours: OpenCV がブレークポイントをトリガーしました

OpenCV で findContours を使用しようとしています。プログラムをデバッグすると、すべてが正常に機能するまで

メッセージが表示されます:

OpenCVFirst.exe がブレークポイントをトリガーしました

これは、間違った OpenCV ファイルをリンクしたことが原因である可能性があることを既に読みましたが、最後に d (デバッグ用) を使用して正しいファイルをリンクしました。

私のコードは、公式の OpenCV の例のようなものです: http://docs.opencv.org/doc/tutorials/imgproc/shapeescriptors/find_contours/find_contours.html

Windows 10 の Visual Studio 2015 で OpenCV 3.0 を使用しています。

0 投票する
1 に答える
343 参照

c++ - OpenCVは輪郭を0に設定しました

私は C++ で OpenCV を使ってコーディングしています。メソッドから取得します

findContours()

「輪郭」に格納された値。データ型は vector> です。輪郭[i]を0に設定したい。 contours[i]=0整数ではなく点のベクトルのベクトルを期待するため、機能しません。どうすればそれを「クリア」できるか考えている人はいますか? ありがとう!

0 投票する
3 に答える
30523 参照

python - Python で OpenCV を使用して輪郭境界内のピクセル値にアクセスする

Python 2.7.9 で OpenCV 3.0.0 を使用しています。背景が静止しているビデオ内のオブジェクトを追跡し、そのプロパティのいくつかを推定しようとしています。画像には複数の移動オブジェクトが存在する可能性があるため、それらを区別して、ビデオの残りのフレーム全体で個別に追跡できるようにしたいと考えています。

私ができると思った 1 つの方法は、画像をバイナリに変換し、ブロブ (この場合は追跡対象のオブジェクト) の輪郭を取得し、オブジェクトの境界の座標を取得することでした。次に、グレースケール画像でこれらの境界座標に移動し、その境界で囲まれたピクセル強度を取得し、他のフレームでこの色のグラデーション/ピクセル強度を追跡できます。このようにして、2 つのオブジェクトを互いに分離しておくことができるので、次のフレームで新しいオブジェクトと見なされなくなります。

輪郭の境界座標がありますが、その境界内のピクセル強度を取得する方法がわかりません。誰かがそれを手伝ってくれませんか?

ありがとう!

0 投票する
1 に答える
206 参照

python - cv2ライブラリを使用してPythonで輪郭をトラバースする際の問題

画像のすべての輪郭をトラバースして条件を適用する必要があるアルゴリズムを設計しています。これを行うためにcv2ライブラリを使用しています。コードは次のとおりです。

エラーは次のとおりです。