12

在此处输入图像描述在此处输入图像描述我正在寻找一些想法来检测附加图像中的线条。假设线条是垂直的,但它们的质量非常差,每条模糊线条之间只有 2-3 个像素。

我已经尝试过这些方法:垂直腐蚀和膨胀 -> 增强 CLAHE 的好结果 -> 有利于增强霍夫 -> 失败,因为将图像转换为黑色,同时会有太多的断线或断桥。我也试过垂直线掩码。基本上基于黑白图像转换的方法不适用于此。

在模糊图像中检测非常细的线条

4

3 回答 3

13

我会沿着线条折叠图像以获得一维轮廓。并在那里进行检测(例如,通过查看中值以上的峰值。

这是折叠的图像折叠的图像

那里的物体检测很明显

于 2012-12-07T17:26:36.013 回答
3

关于噪声图像中微弱边缘检测的非常有前途的作品:直线的基本版本 :http: //www.wisdom.weizmann.ac.il/~meirav/EdgesGalunBasriBrandt.pdf 更高级的版本: http://www.wisdom.weizmann .ac.il/~meirav/Curves_Alpert_Galun_Nadler_Basri.pdf

我不确定作者是否公开了他们的代码。直接联系作者可能是值得的。

这些工作为微弱边缘检测提出了一种经过充分研究和原则性的方法。

于 2012-12-12T12:41:52.997 回答
1

这是另一种方法,它会找到你的线条,假设峰值在 ~5 像素内很明显。它将容忍图像的小旋转。

img = imread('http://i.stack.imgur.com/w7qMT.jpg');
img = rgb2gray(img);

%# smoothen the image a little with an anisotroic Gaussian
fimg = imfilter(double(img),fspecial('gaussian',[3 1]));

%# find the lines as local maxima
msk = ones(5);
msk(:,2:4) = 0;
lines = fimg > imdilate(fimg,msk);

在此处输入图像描述

于 2012-12-07T19:02:32.913 回答