2012-04-30 7 views
8

エッジとコーナー検出を行った後、輪郭を見つけて、この出力を得ました。私はこの画像をトリミングし、OpenCVのに使用してのみ、この長方形を返すことができますどのようにContourからExtract Rectangle OpenCV

EDIT:

私はcvBoundingRectを試してみましたが、その後、setimageROIが、出力画像は、まだいくつかの背景を持つが、私は長方形のみ

にしたいです

ありがとうございます。

Image Link

+0

私はcvBoundingRectを試してから画像を設定しようとしましたが、出力画像にはまだ背景がありましたが、矩形だけが必要です –

+1

矩形領域が必要です。 – karlphillip

+0

@karlphillip右:ありがとう –

答えて

6

私はあなたが選択した矩形領域を必要と願っています。

このためには、別のグレースケールイメージを作成する必要があります。それを「マスク」と呼ぶことにします。次に、得られた長方形の輪郭を描画し、白(255,255,255)で塗りつぶします。今だけの画像の両方でbitwise_and操作を持って

enter image description here

:あなたはこの(すべての画像をペイントプログラムに手編集した)のような画像が得られます。あなたが得るこのようなります:

enter image description here

** NB:**今、それはあなたが望んだものではない場合、代わりにあなたは、あなたがカール・フィリップにthis SOF question(おかげでそれについての情報を見つけることができthis kind of selectionを望んでいましたリンクの場合)。

+0

+1面白いアプローチ、素晴らしいリファレンス:私はそのポストが大好きです。 – karlphillip

+1

この記事は[cv :: Point'のベクトルから画像を歪める方法]を示していますので、この投稿をお勧めします(http://stackoverflow.com/questions/7838487/executing-cvwarpperspective-for-a-fake-deskewing -c-set-of-cvpoint)である。 – karlphillip

+1

うわー。それは私が探していたリンクでした。ありがとうございました!! (karlのリンクで解答を編集しました) –

1

私はムスタファが箱を自動的に取得したいと思いますか?そうでない場合は、Abidの答えを受け入れて、これを無視してください。

そうでない場合:私はそれが一般化する必要がありますどこまで知っていないと

、この特定のイメージのために、あなたの直線を与える、ハフ変換を行います。しかし、下部の線は偽陽性になる可能性があります。しかし、いくつかの後処理、例えば、ぼかし、拡張、あなたはそれを取り除くことができるでしょう。または、線が四角形を作成するという知識を使用することもできます。