2

このような色付きの画像で、輪郭が完全ではありません (線の間に隙間があります)。線の間の領域をある色または別の色で塗りつぶしたい。これは実際には、対応するグレースケール画像にキャニーエッジ検出器を適用した後に取得したバイナリ画像です。

最初に画像を膨張させてから侵食してみましたが、結果は十分ではありません。根元の太さを保てるようにしたい

どんな助けでも大歓迎です

元の画像 元の画像

エッジ検出後の画像とピクセルの手動削除 エッジ検出後の画像とピクセルの手動削除

エッジ画像の情報を使用して、元の画像から特定の色のピクセルを抽出しようと考えました。編集した画像の白いピクセルごとに、元の画像の同じ水平線に沿った検索スペースを使用しました。R、G、Bに異なるしきい値を使用しましたが、最終的にこれになりました

元の画像と編集した画像のピクセル情報を使用する

4

3 に答える 3

1

元の画像がどのように見えるかわかりません。ご覧になると参考になります。

元の画像の線には両側に 1 つずつ、2 つのエッジがあるため、線の間に隙間があります。巧妙なアルゴリズムはそれらの両方を検出しています。Canny エッジ検出アルゴリズムは、勾配を計算するために 2 つの Sobel カーネルを適用することを中心にしています。1 つは水平エッジの検出用で、もう 1 つは垂直エッジの検出用です。

-1 0 +1
-2 0 +2
-1 0 +1

and

+1 +2 +1
 0  0  0
-1 -2 -1

これらのカーネルは、線の両側にピークを示します。1 つのピークが正で、もう 1 つのピークが負です。対応するピークを除外することで、ラインの片側を除外できます。各方向の勾配を取得した後、ゼロ未満の値を切り捨て (値をゼロに設定)、2 番目のピークを削除します。次に、通常どおりキャニー エッジ検出を続行します。これにより、現在表示されている 2 つのエッジではなく、各ラインに対して 1 つのエッジのみが検出されます。

于 2013-05-07T04:37:59.767 に答える