石鑫华视觉 手机微信QQ:13450001061

图像编程

Find Straight Edge查找直边函数最佳边缘覆盖第一边缘的错误问题

文章来源:石鑫华视觉网时间:2023-12-20 08:52:43 点击:179

Find Straight Edge查找直边函数最佳边缘覆盖第一边缘的错误问题

image1.png

右到左,所有边缘,第一边缘

image2.png

右到左,所有边缘,最佳边缘

         上面的两幅效果图,对比的是Look for寻找参数的差异。右到左,所有边缘。当寻找第一边缘时,查找到的直边是“石”字上的一条斜边。而寻找最佳边缘时,则查找到的是名片左边的直边。在这种第一边缘不是太好时,最佳边缘位置会有比较大的差异。反过来,如果左到右,第一边缘和最佳边缘是重合的,那么寻找哪种直边差异就不大了:

image3.png

左到右,第一边缘

image4.png

左到右,最佳边缘

         从上面右到左最佳边缘时的效果来看,搜索线上覆盖的边缘点,总是覆盖的是第一边缘。这里应该是有点小Bug。当选择最佳边缘时,理论上应该返回最佳边缘位置并覆盖这些最佳边缘点。这个问题在视觉助手2023Q1版本中仍然存在:

image5.png

视觉助手2023Q1中下到上,第一边缘

image6.png

视觉助手2023Q1中下到上,最佳边缘

         可以看到上面的最佳边缘时,覆盖的点都是第一边缘的点位置。而且这里可以明显的看到上边的对比度要高于下边的对比度,所以最佳边缘点是上面的一条直边。这个问题在LabVIEW函数中也是有这种问题的:

image7.png

最佳边缘时覆盖的是第一边缘

         这里的Bug应该是出在耙子函数的处理中。找边函数其实是两个函数的组合,先使用耙子函数查找边缘,再拟合直边函数来拟合直边。可以看一下耙子函数:

image8.png

Rake耙子函数

image9.png

耙子函数获取第一边缘

image10.png

耙子函数获取第一和最后边缘

image11.png

耙子函数获取所有边缘

image12.png

耙子函数获取最佳边缘

         从上面的耙子函数得到的各种边缘,明显是不一样的。最佳边缘的位置即有第一边缘的,也有最后边缘的。所以,对于视觉助手中的查找直边时最佳边缘时的覆盖查找到的边缘是有错误的。

首页
84162741QQ
联系