Matlab 二值图像中曲线的识别

Matlab 二值图像中曲线的识别,matlab,curves,Matlab,Curves,我有一个二值图像,我想在其中检测曲线并输出曲线的坐标像素位置。图像是一个嘈杂的一个,我想检测两条曲线,运行水平 我正在使用MATLAB进行图像分析。如果你能为我提供一些识别这些曲线的提示,那就太好了 示例图片: 如果图像保持这样,您可能可以用一种非常简单的方法逐行计算位(但这只适用于保持水平或垂直的情况)。这将为您提供沿y坐标的某种直方图,使您能够平均其中一条线的y坐标 % Read the image img = imread('To_detect_curves.png'); % Conver

我有一个二值图像,我想在其中检测曲线并输出曲线的坐标像素位置。图像是一个嘈杂的一个,我想检测两条曲线,运行水平

我正在使用MATLAB进行图像分析。如果你能为我提供一些识别这些曲线的提示,那就太好了

示例图片:


如果图像保持这样,您可能可以用一种非常简单的方法逐行计算位(但这只适用于保持水平或垂直的情况)。这将为您提供沿y坐标的某种直方图,使您能够平均其中一条线的y坐标

% Read the image
img = imread('To_detect_curves.png');
% Convert it to BW
img = rgb2gray(img);
% Get the size of the image for the loops
[width,height] = size(img);
bits_per_line = zeros(height,1);
% Sum over all lines (rows)
for idx=1:height
    bits_per_line(idx) = sum(img(idx,:));
end
plot(1:height,bits_per_line)
因此,您将获得如下内容,您可以轻松确定直线的Y坐标


这当然不会帮助您处理更复杂的图像,但对于您提供的图像,它应该可以。如果你有更多关于你想做什么的信息,请告诉我们。

如果图像保持这样,你可能可以用一种非常简单的方法,一行一行地计算位(但这只适用于保持水平或垂直的位)。这将为您提供沿y坐标的某种直方图,使您能够平均其中一条线的y坐标

% Read the image
img = imread('To_detect_curves.png');
% Convert it to BW
img = rgb2gray(img);
% Get the size of the image for the loops
[width,height] = size(img);
bits_per_line = zeros(height,1);
% Sum over all lines (rows)
for idx=1:height
    bits_per_line(idx) = sum(img(idx,:));
end
plot(1:height,bits_per_line)
因此,您将获得如下内容,您可以轻松确定直线的Y坐标

这当然不会帮助您处理更复杂的图像,但对于您提供的图像,它应该可以。如果您有更多关于您想做什么的详细信息,请告诉我们。

请使用。但是,为了让它很好地工作,你必须阅读相关的文章,并“摆弄”它们。我希望Canny边缘检测在这个数据集上做得很好

edge(yourImageHere, 'canny')
使用一个。但是,为了让它很好地工作,你必须阅读相关的文章,并“摆弄”它们。我希望Canny边缘检测在这个数据集上做得很好

edge(yourImageHere, 'canny')

这是你的开始。@Lucas-我尝试过使用边缘检测方法,但效果不太好,因为图像非常嘈杂。一种可能的方法是拟合一条曲线,然后从中提取信息,但我不确定如何进行。您好!我把你的问题退回到以前的状态。原来的问题似乎已经得到了回答,你现在要求的是问题的“继续”,下一步。如果是这样的话,请考虑接受帮助你的答案(见)并用新的问题打开一个新的问题并参考这个问题。继续编程!这是你的开始。@Lucas-我尝试过使用边缘检测方法,但效果不太好,因为图像非常嘈杂。一种可能的方法是拟合一条曲线,然后从中提取信息,但我不确定如何进行。您好!我把你的问题退回到以前的状态。原来的问题似乎已经得到了回答,你现在要求的是问题的“继续”,下一步。如果是这样的话,请考虑接受帮助你的答案(见)并用新的问题打开一个新的问题并参考这个问题。继续编程!嗨,约翰,谢谢你的建议。canny边缘检测器工作得很好,现在我编辑了我的问题来解释整个问题。对于曲线的形状有什么建议吗?@孙达尔,如果这个问题对你有帮助,考虑接受它,并问另一个问题作为这个问题的延续。嗨,约翰,谢谢你的建议。canny边缘检测器工作得很好,现在我编辑了我的问题来解释整个问题。对于曲线的形状有什么建议吗?@孙达尔,如果这个问题对你有帮助,考虑接受它,并问另一个问题作为这个问题的延续。嗨,马丁,如果我只对曲线的位置感兴趣,你的建议很有效。但是,由于我现在编辑了我的问题,我需要获得垂直线左侧和右侧的曲线形状。嗨,马丁,如果我只对曲线的位置感兴趣,你的建议很有效。但是,由于我现在编辑了我的问题,我需要获得垂直线左侧和右侧的曲线形状。