【发布时间】:2011-08-26 02:29:36
【问题描述】:
我正在尝试在 Matlab 中将图像转换为图形。
流程如下:
- 拍摄 RGB 图像
- 在图中找到坐标轴并创建适当的像素到 (x, y) 坐标
- 使用一些可自定义的
im2bw将图像转换为 BW,并且 - [这就是棘手的部分] 试图为图像中的白色像素提供一条线匹配。
我一直在尝试一些蛇和一些随用随增长的算法来从 BW 图像中的白色像素中检测图形,但我找不到与所有匹配的现成的 Matlab 算法似乎很奇怪BW 图像中的白色像素到一个方程。任何帮助或想法将不胜感激。
[编辑] 下面是从图中提取的 BW 图像的示例:
【问题讨论】:
-
如果您只做一两个图表并且不介意点击点击,那么从文件交换中抓取非常有用。 mathworks.com/matlabcentral/fileexchange/7173-grabit除此之外,自动化方式更好,我也有兴趣看到一个。
-
@Alex - 不知道它已经在 FileExchange 中,我自己编写了这部分,通过行和列的总和自动检测轴。
-
可能相关:How do I calculate the area under a curve in an image with MATLAB? 尚不完全清楚您想要做什么,但我认为您可以查看my answer 以了解我是如何为轴、网格和绘图线提取像素的那个例子。获得图形的像素值后,您可以进行曲线拟合。
-
我没有时间给出完整的答案,但这是一种潜在的方法,以防您只有一条线,或者线的颜色不同。对于每条线:(1) 使用
find获取线的 x,y 值,(2) 如有必要,使用轴变换坐标,(3) 使用平滑样条曲线(csaps或 @987654329 @ 来自 FEX)创建一条紧跟这些点的线。 -
一个不错的手动选择图形点的小工具是g3data。