1)读一本关于图像分析的书
2)扫描黑色像素,发现黑色像素时将其存储,然后将其设置为白色。这将获得一个对象中的点并将其从图像中删除。只需不断重复此操作,直到没有剩余的黑色像素。
如果要将曲线与直线分开,请尝试进行直线拟合,然后获取相关系数。类似的算法可用于曲线,并且相关性告诉您点与理想形状的接近度。
0
1)读一本关于图像分析的书
2)扫描黑色像素,发现黑色像素时将其存储,然后将其设置为白色。这将获得一个对象中的点并将其从图像中删除。只需不断重复此操作,直到没有剩余的黑色像素。
如果要将曲线与直线分开,请尝试进行直线拟合,然后获取相关系数。类似的算法可用于曲线,并且相关性告诉您点与理想形状的接近度。
0
0
由于您似乎已经拥有一个好的二进制映像,因此,最简单的方法是将映像的不同连接组件分开,然后计算其参数。
首先,您可以通过扫描图像来进行分离,当遇到黑色像素时,可以应用标准的填充算法来找出形状中的所有像素。如果您有matlab映像工具箱,则可以找到使用bwconncomp和bwselect过程的方法。如果形状没有完全连接,则可以对图像应用形态学闭合操作以连接形状。
分割出不同的形状之后,可以通过测试曲线与直线的偏离程度来过滤掉曲线。您只需选择曲线的端点,然后计算其他点与端点定义的直线之间的距离,即可完成此操作。如果该值超过某个最大值,则将显示一条曲线而不是一条直线。
另一种方法是测量端点距离与对象长度的比率。对于直线,此比率将接近1;对于曲线和摆动的形状,该比率将更大。
如果图像具有希望与曲线分开的角度,则可以检查曲线的方向梯度。分割形状,从中选取等距的点集,并为每个点计算与上一个点和下一个点的角度。如果角度差太大,则您将没有平滑的曲线,而是有些倾斜的形状。
实施中可能遇到的困难包括粗线,您可以通过骨架变换来解决。有关骨架的matlab实现和查找曲线端点的信息,请参见matlab图像处理工具包文档
0
我有一个二进制图像,我想检测/跟踪该图像中的曲线。我什么都不知道(坐标,角度等)。谁能指导我该如何开始?假设我有这张图片
我想分开曲线和其他线条。我只对曲线及其参数感兴趣。我想存储曲线的信息(在数组中)以备后用。