2016-05-19 32 views
0

私は画像Original Imageを持っています。画像内のボックスを囲んでいる輪郭を探したいと思います。これを行う理由は、イメージを境界ボックスにトリミングしてから、このトリミングされたイメージに対してさらにイメージ処理を実行することです。OpenCV(Python)を使用して最大囲み領域の輪郭を見つけよう

私はCannyのエッジを検出しようとしましたが、それらは私が望むように接続していないようです。添付されているのは、賢いエッジがどのように見えるかというイメージです。 Canny edges

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

元画像からバウンディングボックスを見つけるための最善の方法は何ですか?

多くのありがとうございます。

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

答えて

0

私は次のことを前提としています(そうでない場合、あなたの質問に、このようなものを指定する必要があります) あなたはサイズが常に視点 同じであるボックス のサイズは常に同じ ボックスです知っていますボックスは

、 しきい値を超過(XおよびYに)黒い背景からボックスへの遷移を見つけるために、画像を横切る少数の走査線を使用し、最大勾配または任意のスーツを回転させない完全fiew の視野内に常にありますあなたは最高です。

アウトライアーを破棄して、最小および最大座標を使用して、固定サイズROIをボックスの上に配置します。

閾値、距離変換、最大

又は

閾値、ブロブ検索、重心/輪郭

様その固定ROIの中心位置決幅を見つけるために、他の多くの方法がありますいくつかの等高線マッチングを行うこともできます。

バックグラウンドイルミネーションがボックスの境界を超えないように設定を改善することをお勧めします(左/右が上/下より優れています)。それですべてが簡単になる。

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

関連する問題