私は色と輪郭で1つのオブジェクトを分離し、このオブジェクトのy位置を計算する画像処理チェーンで作業しています。輪郭の中心を計算する/ Area
OpenCVで輪郭または領域の中心を計算するにはどうすればよいですか?
OpenCVのリンク:
私は色と輪郭で1つのオブジェクトを分離し、このオブジェクトのy位置を計算する画像処理チェーンで作業しています。輪郭の中心を計算する/ Area
OpenCVで輪郭または領域の中心を計算するにはどうすればよいですか?
OpenCVのリンク:
まず、Momentsを計算してy方向の質量中心を求めることができます。次に、質量中心はyc = M01/M00
で与えられます。ここで、M01とM00はMoments呼び出しによって返された構造体のフィールドです。
境界矩形の中心が欲しい場合は、BoundingRectでも簡単です。これはあなたにCvRectを返し、あなたはちょうど高さの半分を取ることができます。
これが十分正確でない場合は、サンプルコードをどこかで手に入れてください。
私は正確にOpenCVのが何であるかを知らないが、私はこれをお勧めします:
ピクセルの選択されたクラスタが持っています1点の最大幅 - w - は、領域に縦のピクセル列があるとします。ここでは、列に含まれるピクセルの数に応じて列に重み付けを行い、これらの列幅を使って水平中心点を決定します。
同じアルゴリズムは、Xセンターでも機能します。
これを行うための組み込み方法が複数ある場合は、何もしないでください。 – Kiv
第3に、凸包とその瞬間(実際はBoundingRectの最初の内部ステップ)を計算することができます。第4に、輪郭ピクセルだけ(すなわち、輪郭上に正確に位置するピクセル)の重心を計算することができる。これらのメソッドはすべて異なる*値を与え、その有用性はアプリケーション固有のニーズに依存します。 – rwong
輪郭の点の中心は重心ではありません。輪郭点の99%は、変動の大きい小さな領域に集中することができ、3つだけがより大きな規則的な形状の残りの部分を覆う。 –
輪郭のモーメントは、輪郭点を合計することによって計算されるのではなく、グリーンの定理を使用して計算されます。結果は画像の塗りつぶした輪郭の重心を計算するのとまったく同じではありませんが、似ていますが、あなたが示唆するように輪郭点の不規則性によって歪曲されません。 – buzjwa