私は形状検出のための小さなアプリケーションを書いています。私が最初にやるべきことは、画像上で最も重要な形を見つけることです。私は、画像をグレースケール、スレッシュホールド、エッジ検出に変換するなど、いくつかの前処理から始めました。あなたがメインの形状が表示されて見ることができるように、これらの操作の前と後の画像は、(それが少し散乱されるが形状検出 - OpenCVによる等高線近似
ので後
前
の下に提示されます)、いくつかの騒音(小さな木など)もあります。私がする必要があることは、何とか最も重要な形状(最大のもの)のみを抽出することです。この場合はタワーです。 私がやりたかったのは、opencvの輪郭検索機能を使用して、何らかの形で近似したポリゴンの輪郭を見つけ出すことでした。それで私は(何とか)カウンターの面積を計算し、最大のものだけを選択します。 は、これまでのところ私は(のみ)を使用して輪郭を見つけることがうまく管理
cvFindContours(crated,g_storage,&contours);
私はしかし、私は、この関数の結果のための任意の便利な情報を取得することはできませんよ、
cvApproxPoly
機能があることを知っています。 輪郭の面積を計算したり、多角形で近似することが可能かどうか、誰かに教えてもらえますか?たぶん、最も重要な形状のみを抽出する方が良いアイデアですか?
バイナリゼーションプロセスのアドオンとして。良いしきい値を見つけることは常に困難です。私はいつもヒソグラムを計算し、「低点」を探します。そこには通常、ネイバーのしきい値があります。 JPEGを使用している場合、この方法はあまりうまくいかないかもしれません。 –