2011-12-05 14 views
3

私はいくつかの基本的な画像操作のためにPython画像ライブラリを使用しています。私は画像のエッジを検出したいが、太いものだけを検出したい。画像の太いエッジをフィルタリングするにはどうすればよいですか?

どうすればいいですか?

+0

http://en.wikipedia.org/wiki/Edge_detectionこのように使用できるアルゴリズムはたくさんあります:http://en.wikipedia.org/wiki/Sobel_operator – Flo

答えて

0

私は、太いエッジが2つのエッジとして検出されるような感覚を持っています。この場合は、最大限に抑制する必要があります。極端に薄いエッジを捨てるようなメジアンフィルタなどを試しましたか? (メジアンフィルタの後にスムージングすると、細いエッジがかなり抑制されますが、厚いものには何が起こるかが少しはっきりしません)。

もう1つの考え方は、ハフ変換を使用し、エッジ/ラインを検出するのに必要な投票数。

0

画像を低解像度にリサイズし、そこにエッジを見つけるのはどうですか?

次に、元のサイズに縮小してエッジの位置を再計算します。

+0

あなたのアイデアは好きですが、他の非ブルートメソッドはありますか? – Vishwanath

+0

達成したいことのいくつかの例を見せてください。 – Krab

+0

@Vishwanath、これは実際には良い "非ブルート"なテクニックです。 cvPyrDown関数を見てみましょう。一度適用してから、結果のダウンサンプリングされた画像でエッジ検出を実行してください。 – Throwback1986

2

私は、より薄いエッジを取り除き、より厚いエッジを残してエッジ検出を行うために、画像を腐食することから始めたいと思います。 erosion and dilationを参照してください。

+0

ねえ、私はあなたの方法を試して、それは私のために働いた。ありがとう。 – Vishwanath

+0

ersosion kernel/filterを使っていますか? – Jeb

+0

私は{(0,1,0)、(1,1,1)、(0,1,0)}を使用します。可能であれば、より良い方法を提案してください。 – Vishwanath

関連する問題