0

形状を検出するためにopencvを使用しています。このような形状を検出する必要がありますここに画像の説明を入力

これは手描きの絵になります。私は kinect を使用して、フレームをチェックして絵を検出しています。ノイズの除去、エッジ検出、輪郭の検出、および approxDP よりも、これらの種類の写真に対して 6 ポイントを取得し、形状が右向き、左向き、下向き、または上向きであることを検出できなくなりました。ポイントの場所は写真ごとに変わります。

与えられた2点を知りたいのですが、点の間に線分があるかどうかを確認するにはどうすればよいですか。2 つのポイントに到達した後、残りのポイントの位置から、形状が指している場所を計算できます。

誰かがより良い解決策を持っている場合は、共有してください。

4

1 に答える 1

0

2 つの端点があり、線分のピクセル値が 0 より大きいとします (上の画像では、しきい値のバイナリ反転を使用する必要がある場合があります)。

  1. 太さ=1 ピクセルの線を描画してマスク イメージを作成します。

  2. 上記のマスクを使用してソース画像を新しいマットにコピーします。

  3. 結果の Mat でゼロ以外のピクセルをカウントします。

    • ゼロの場合、ポイント間に線はありません。
    • ゼロ以外のカウントが値を与える場合は、マスクで描いた線の長さと比較してクロスチェックできます。
于 2014-03-18T11:53:45.373 に答える