問題タブ [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.
c++ - 輪郭 / OpenCV 2.4.4 の接続コンポーネント
私は現在、検出された輪郭がたくさんある画像に取り組んでいます。私の目標は、輪郭の数を絞り込んで、探しているものだけにすることです。そのために、エリアとバウンディング ボックスに基づいて一連のテストを行います。
今のところ、すべてのステップの後にdrawContours
、保持したい輪郭に対して a を実行し、その後に a が続きfindContours
ます。
私の問題は、findContours
一度だけ実行して、不要な輪郭を消去したいということです。これは可能ですか?
現在の方法:
等
希望の方法:
これらの輪郭を消去する方法はありますか?
PS : 内側の輪郭は気にしません。それらすべてをテストに合格させたいと思っています。
EDIT、解決策(リモナナが指摘)は次のとおりです。contours.erase(contours.begin()+i);
python-2.7 - OpenCV 2.4で輪郭と外接する長方形を扱う - python 2.7
私はopenCvとpythonを使用しており、構造分析と形状記述子を扱っています。私はこのブログを見つけました:http: //opencvpython.blogspot.it/2012/06/contours-2-brotherhood.html は非常に役に立ち、白黒の画像で外接する四角形を描画しようとしましたが、うまくいきました。しかし、今では画像から、たとえば黄色を抽出し、その上に外接する四角形を描きたいと思います。問題は、白黒の画像が均一ではなく、ノイズがあり、コードが形状全体を認識していないことです。
そして、これはコードです:
opencv - OpenCV - 輪郭から小さな線分を削除する方法は?
輪郭から小さな線分を削除する方法はありますか?
たとえば、このイメージでは、最大の等高線は緑色で指定され、その近似は青色で指定されています。
輪郭はポイントのセットであるため、赤い円で囲まれた輪郭のセグメントを削除するために何かできると思います。たとえば、細い線や小さなサブ輪郭を検出して削除するなどの方法があります。しかし、どうすればできるのかわかりません。
その前ではなく、輪郭を見つけた後にそれらを削除したいことを覚えておいてください。それらを削除する方法を知っていますか?または任意のアイデア?
python - 左から右にopencv-pythonで順次輪郭を作成する方法
opencv-python で等高線を使用して手書きの数値をセグメント化した後、ランダムな出力等高線が得られます。左から右、上から下に順番に取得するにはどうすればよいですか?
c++ - openCV 2.4.10 bwlabel - 接続されたコンポーネント
以下は、matlab の元のコードです。
これがopenCVを使用した私のコードです
これで輪郭ができたので、bwlabel 関数
1 を使用したいと思います。ラベル付けは、接続された 4 ~ 8 個のオブジェクトを取得するために行われると考えました。ラベリングとは実際には何なのか説明していただけますか?私は任意のリンクを apriciate します。
2. OpenCV
の接続されたコンポーネント この記事では、CVblob について話している人もいれば、opecv の cvContourArea について話している人もいますが、違いを説明できますか。私のユースケースにより適したものは何ですか?
更新: cvBlobs を使用して試したことは次のとおりです。
c++ - opencv を使用してランダムな形状を塗りつぶす
唇や眼球などの不規則な形状を塗りつぶす必要があるアプリケーションを作成しようとしています。
私がやろうとしたことは、CLM ポイントを抽出することでした。次に、OpenCV でフラッディング機能を試してみましたが、ランダムな形状に対してはできませんでした。
その後、drawContours
関数を試して、負の厚さを使用して塗りつぶしたところ、次のような結果が得られました。
より良い充填結果を得て、CLM ポイントを追跡するための提案をしてくれる人はいますか?
android - Androidで凸包を描く
画像に凸包を描画しようとしました。このために、すべての輪郭を見つけて、最大面積の輪郭を選択します。drawContours
受け入れますMatOfPoint
がconvexHull
、私に与えますMatOfInt
。この質問を読んで、いくつかのコードを実行します。それらのいくつかは凸包を描きますが、実際の凸点を見つけることはできません。
以下のコードを使用していますが、最後の行に実行時エラーがありますm.fromArray(hullpoints.get(i));
。hullpoints.get(i)
ポイントは 1 つしかなく、コードはMatOfPoint
オブジェクトを作成できません。MatOfPoint
からに変換するにはどうすればよいMatOfInt
ですか?
c++ - Opencv findcontours CV_RETR_EXTERNAL が機能しない
私はこのイメージを持っています:
編集 申し訳ありませんが、画像を削除する必要がありました!
黒以外の画像の輪郭を抽出する必要があるため、CV_RETR_EXTERNAL パラメータを指定して findcontour を使用しましたが、次のようになりました。
コードは次のとおりです。
どうすれば解決できますか?