4

次の画像で、線だけを残すために円を削除するにはどうすればよいですか?

http://s4.postimage.org/wndlnwph9/morph.png

4

2 に答える 2

4

適切な構造化要素を使用して形態学的な開口部を作成します。

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

Opening[f, DiskMatrix[7]]

タスク全体を実行するには、いくつかのアプローチがあります。いくつかは、前の結果(実験する可能性があります)から入力画像を差し引くことから始まります。これらの明確なものの1つは、入力画像を薄くすることから始まります。これにより、線と重なっていない円が1ピクセルに(または、円が完全でない場合はそれに近く)、簡単に削除できます。次に、この画像を剪定し、線を検出します(右の次の画像)。

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

f = ImageCrop[Binarize[Import["http://i.stack.imgur.com/AurlZ.png"]]] (* Input *)
g = SelectComponents[Thinning[f], "Count", #1 > 10 &]          (* Second image *)
h = Pruning[g, 9];
lines = ImageLines[h, 0.1, Method -> "RANSAC", Segmented -> True];
Show[Dilation[h, 3], Graphics[{Thick, Red, Line /@ lines}]]    (* Third image *)

特定の円に近いセグメントの方向と一緒に表示される最初の画像で検出された円を考慮することにより、特定の連結成分の赤い線を補完することを試みることができます。

于 2013-02-06T02:44:39.127 に答える
3

円形ハフ変換を使用して円を検出すると、それらを削除できます。ファイル交換には、使用できるファイルがいくつかあります。たとえば、このファイルまたはこのファイルです。Matlabimfindcircles は、同じことを行うというツールも提供しています。

于 2013-02-05T17:11:54.907 に答える