将Matlab拟合图形到二值图像

3
我正在试图在Matlab中将图像转换为图表。
该过程如下:
  1. 获取RGB图像
  2. 找到轴并创建适当的像素到(x,y)坐标的图形,
  3. 使用一些可自定义的im2bw将图像转换为BW,以及
  4. [这是棘手的部分]尝试找到与图像中的白色像素相匹配的线。
我一直在尝试一些蛇和一些逐步增长的算法来从BW图像中检测图形,但奇怪的是我找不到一个现成的Matlab算法,可以将BW图像中的所有白色像素与方程式匹配。任何帮助或想法都将不胜感激。
[编辑]这里是从提取的图表的BW图像的示例: enter image description here

如果你只需要做一两个图表,而且不介意手动点击鼠标,那么从文件交换中心获取的Grabit非常有用。http://www.mathworks.com/matlabcentral/fileexchange/7173-grabit 如果需要做更多的图表,则自动化方式更好,我也很想看到这样的方法。 - Alex
@Alex - 不知道它已经在FileExchange中了,我自己编写了这部分程序,通过行和列的总和自动检测轴。 - shahar_m
1
可能相关:如何使用MATLAB计算图像下曲线下的面积? 不太清楚您想要做什么,但我认为您可以查看我的答案,了解我如何在该示例中提取轴、网格和绘图线的像素。一旦您获得了图形的像素值,就可以进行曲线拟合。 - gnovice
我没有时间给出完整的答案,但是这里有一个可能的方法,如果你只有一条线或者这些线的颜色不同。对于每一条线:(1)使用find获取线的x,y值,(2)如果必要,使用坐标轴进行转换,(3)使用平滑样条(csaps或来自FEX的smoothn)创建一个紧密跟随点的线。 - Jonas
一个很好用的手动选择图表点的工具是g3data - jarmond
不错的工具@jarmond,但它只适用于手动设置数据点。正如我所说,应该有一些自动算法。 - shahar_m
1个回答

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接