画像内の特定の行を見つける


9

次の図で、青色と灰色の間の線を見つけたい:

ここに画像の説明を入力してください

より正確には、その線の終点。

ハフ変換は選択ですか?はいの場合、ハフを使用する前に画像をどのように設定すればよいですか?

これを解決する方法があれば役に立ちます。


ハフ変換の前にエッジ検出を行います。それはその移行を両側が黒の明るい線に変えるでしょう
内部石

回答:


10

一般に、この種の問題には、Cannyエッジ検出器のようなエッジ検出器が必要です。ハフ変換は、エッジではなく線を抽出するのに役立ちます。

ただし、この特定のケースでは、次のようなことを行う方がよいでしょう。

imdata = imread('grayblue.jpg');
colidx = find(diff(imdata(1,:) ~= 0);

とてもシンプルな画像なので。


0

次のようなこの単純なたたみ込みカーネルの画像の場合、エッジがうまく検出されます。

[-1 2-1]

これにより、各エッジポイントに1つのエッジピクセルが生成されます。大騒ぎなし、ムスなし。キャニーはこの問題にあまりにも関与しています。線のエッジポイントを任意の角度で検索する場合は、単純なラプラシアン、ガラシアンのラプラシアン(LoG)、またはガウスの差(DoG)を使用できます。SobelとPrewittも単純ですが、「2倍の太さ」の線ができるので不適切です。

ここで説明されているHoughの邪悪な高速実装があります:http : //www.ic.uff.br/~laffernandes/projects/kht/index.html

非常に高速ですが、実装とデバッグが少し難しい「パラメータレスハフ」アルゴリズムもあります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.