グリッドのような構造を検出するためのハフ変換の代替


16

私はグリッド形状を形成する複数の「角度」で構成される画像を持っています:

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

いくつかの検索の後、ハフは行の区切りに悩まされていないため、ぴったりのように見えました。ただし、私が抱えている問題は、線が「太っている」ことであり、実行するエッジ検出(この場合はCanny)は、中央ではなく線のエッジを選択します。

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

これは、ハフ変換が、中央ではなくグリッド線の「側面」の一方(または両方)を選択することを意味します。

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

私が探しているもの(このグリッドのような形状、常にほぼ同じ方向)を知っているので、「エッジ検出」部分を実行して中心線を与えるより良い方法がありますか、または探しているべきですか?全く異なる方法で?


コンテキストのために、このグリッドは、Tsaiカメラキャリブレーションを実行するために公称グリッドと比較されます。
ベンジョー

「エッジ検出を実行し、ラインのエッジを選択します」はい、エッジ検出はエッジをリッジに変換し、画像はすでにリッジです。エッジは、明るい部分と暗い部分の境界です。
エンドリス

回答:


10

この場合、ハフ変換は確かにグリッドの取得に役立ちます。行を「細く」するには、スケルトン化の操作を検討する必要があります。

これにより、次のような画像が生成されます。 スケルトン化出力

スケルトン化の動作方法により、グリッドとは無関係に見えるいくつかのラインが生成されますが、これらの「誤った」方向へのラインは、(少なくとも特定の画像では)ハフ変換のライン検出を混乱させるほど多くありません多すぎると、明確に異なる方向にある2つの主要なラインセットが選択されます。(HT出力は次のようになります。) ここに画像の説明を入力してください

MATLABを使用している場合は、このヘルプページを確認してください。


ありがとう!これは非常に役立ちます。まだMATLABライセンスを取得していませんが、AForgeのSimpleSkeletonizationを使用して試してみたところ、より良く機能します...まだ完璧ではありません。後で実際のデータを取得してテストするときに、このテーマを再検討します。
ベンジョー

「最適な」太いグリッド線を生成していると思われる何らかのしきい値で、最初に元の画像のしきい値を設定してみてください。最適とは、少なくとも接続されているということです。これにより、スケルトン化のパフォーマンスが向上する可能性がありますが、決定する追加のパラメーター(しきい値)があります。画像取得の改善方法も検討する価値があるかもしれません。
A_A

はい、私が言ったように、実際のデータを再生することができたら、システムを微調整する価値があります。一般にハフについての大きな疑問の1つは、シータの離散化が必要なサブピクセル精度に反することです。(それで、レンズの収差は、直線ではなく曲線が曲がることを意味しないと完全に確信しているわけではありません...)
Benjol

11

ハフの代替変換は(ラドン変換であろう12)。グリッドのような構造を検出するアルゴリズムの大まかな説明は、次のようになります。

1. Perform Radon Transform from 0 to 180 degrees.
2. Find the two highest maxima in the angle bins.
3. For the two angles with maximal amplitude find the local maxima within the bin.
4. You can use the constraint that the maxima should have even spacing to deal with outliers.

編集

手順1-3を説明する小さなmatlabスニペットを次に示します。

im = imread('grid.png');
[R, xp] = radon(im, 0:180);
imagesc(0:180, xp, R)

ラドン変換の結果

plot(max(R)) % the two maxima are at 65 & 117 degrees

すべての角度にわたる最大値

plot(R(:, 65))

65度の最大値

plot(R(:,117))

117度の最大値

コメントからあなたの質問に答えるために:あなたが提供した1つの例の画像から、この方法は検出されたグリッドの小さな欠陥に対してより堅牢であるように見えます。スケルトンが直線を生成することはめったにありませんが、これは後続のハフ変換にとって不利な場合があります。


おかげで、Hough変換と比較して、Radon変換が私に与える利点をいくつか語ってください。
ベンジョー

@benjol、答えを更新しました。
bjoernz

とても素敵です、どうもありがとう。ITがMatlabへのアクセスを許可したら、試してみます!
ベンジョー

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