1

画像Original Imageがあり、画像内のボックスを囲む輪郭を見つけたいと思います。これを行う理由は、画像を境界ボックスにトリミングし、このトリミングされた画像に対してさらに画像処理を実行したいからです。

キャニー エッジを検出しようとしましたが、意図したとおりに接続されていないようです。キャニーエッジがどのように見えるかの画像が添付されています。キャニーエッジ

    gray = img[:,:,1]
    blurred = cv2.GaussianBlur(gray, (5, 5), 0)
    edged = cv2.Canny(blurred, 20, 60)

元の画像から境界ボックスを見つける最良の方法は何ですか?

どうもありがとう。

可能であれば、この質問をより明確にする方法も教えてください!

4

1 に答える 1

0

私は次のように仮定します: (そうでない場合は、質問でそのようなことを指定する必要があります) ボックスのサイズを知っている サイズは常に同じです 視点は常に同じです ボックスは常に完全に視野内にありますボックスが回転しない

画像全体で数本の走査線を使用して、黒の背景からボックス (x および y) への移行を見つけます。

外れ値を破棄し、最小座標と最大座標を使用して固定サイズの ROI をボックスの上に配置します。

その固定ROIの中心位置を見つける方法は他にもたくさんあります

しきい値、距離変換、最大

また

しきい値、ブロブ検索、重心/輪郭

輪郭マッチングを行うこともできます。

背景の照明がボックスの境界線を超えないように、セットアップを改善することをお勧めします (左/右は上/下よりも優れています)。その後、すべてが簡単になります。

あなたのエッジ画像はひどく見えます。他の方法を確認するか、Canny パラメータを改善してください。

于 2016-05-19T18:48:45.033 に答える