螺纹检测程序

1、首先对彩色图像进行灰度处理:采用的模块是螺纹检测程序,该模块不一定正确。

2、对图像进行中值滤波。模块螺纹检测程序螺纹检测程序

3、灰度阈值分割,螺纹检测程序螺纹检测程序,凸显感兴趣轮廓。变位二值化图像。

4、边缘检测。同样是滤波模块,采用canny算法,螺纹检测程序

5、形态学处理。对边缘图像进行闭合计算。螺纹检测程序

螺纹检测程序二值化图像中空洞都被填补,并且图像边缘细节更加的完善。

通过“视觉助手”生成程序框图如下:

螺纹检测程序


6、接下来截取感兴趣区域(左右螺纹区域),截取模块为螺纹检测程序。由于有左右螺纹,要截取两次。

按照常规思想可以截取左右螺纹同时并行处理。但是“视觉助手”不支持并行,手动在程序框图添加后,结果也只能截取一边。通过研究采用的解决方案是:采用现将原图像缓存下来,在分别截取。(原因没搞清楚)

缓存模块:螺纹检测程序螺纹检测程序,可以储存、提取。

7、图像显示模块的属性螺纹检测程序,要勾选,不然显示图像不对,(具体原因也不清楚)。

8、将图像转换为数组,检测边缘,将螺纹转换为曲线。

9、检测曲线的波峰、波谷。(这里需要注意,必须对图像进行平滑处理,不然检测处理结果不对)。

螺纹检测程序

10、可以在XY图上显示多个曲线,方法为:螺纹检测程序一组数据一个簇。

11、中经检测。其大小是母线通过牙型上沟槽和凸起宽度相等位置的假想圆柱面的直径。这里存在求交点问题,这里采用的方法是比较大小然后求异或,可找到交点的位置。这个算法需要注意(研究了半天)。当找到交点时,采用数组插入方式记录点。该数字一定要初始化,不然会保存上一次运行结果,初始化放在每次循环开始。每一条线的交点找到后要进行计算,需要另外建立一个数组,因为原来数组被初始化了。

螺纹检测程序