一种钢丝绳图像的分割算法的制作方法

文档序号:37806939发布日期:2024-04-30 17:17阅读:9来源:国知局
一种钢丝绳图像的分割算法的制作方法

本发明涉及一种钢丝绳图像的分割算法,具体是基于图像处理检测技术对钢丝绳进行定期检查和评估时针对钢丝绳图像的分割算法,属于钢丝绳检测。


背景技术:

1、随着现代工业技术的发展,钢丝绳在多个行业中扮演着至关重要的角色,例如起重机、电梯、矿业和建筑等。设备工作时钢丝绳受到使用环境的影响而容易损坏,特别是钢丝绳断丝损伤对其性能和可靠性影响巨大,钢丝绳的质量和状态直接关系到设备的安全运行,因此对钢丝绳进行定期的检查和评估尤为重要。

2、目前针对钢丝绳的检测通常采用电磁法检测的方式,即对钢丝绳加载外部磁场、利用钢丝绳的磁导率变化实现对钢丝绳缺陷的检测,但由于电磁干扰、湿度、温度波动等原因,不仅使钢丝绳电磁探头存在信号信噪比低、空间分辨率低、采样灵敏度低的问题,而且由于磁感应线方向的不确定性和检测过程中距离的变化,会造成信号的重复性和稳定性较低,在定量检测受损信号和定量钢丝绳缺陷方面存在较大障碍,同时,电磁法检测会带来干扰的高风险和操作风险,因此采用电磁法检测钢丝绳的效果并不理想。

3、为了更为高效、快速和精确地检查钢丝绳,近年来已经有多种基于图像处理的检测技术被提出。这些技术通常涉及到将钢丝绳的真实物理特性转化为数字图像,并对这些图像进行处理以获取有关钢丝绳的关键信息。但由于钢丝绳的结构复杂,纹理繁多,加上可能的环境因素干扰(如灰尘、油脂、不均匀的光照等),使得图像处理变得具有挑战性。传统的钢丝绳图像处理方法主要依赖于手工或半自动的方式,这在一定程度上可能导致分析结果的不一致或误差。此外,很多方法对于复杂的纹理特征和背景噪音处理能力有限,尤其是在进行细微的绳股分析时,常规的图像处理方法可能无法得到满意的结果。


技术实现思路

1、针对上述现有技术存在的问题,本发明提供一种钢丝绳图像的分割算法,能够对钢丝绳图像进行高效自动化处理、且具有较高的精度,进而实现准确评估钢丝绳的状态、保证设备的安全运行。

2、为实现上述目的,本钢丝绳图像的分割算法包括钢丝绳本体分割以及基于钢丝绳本体分割结果的钢丝绳绳股分割,具体包括以下步骤:

3、step1,采用c++语言编程,对钢丝绳图像进行本体分割,获得钢丝绳在图片中准确的方向与左右轮廓点坐标,具体的:

4、step1-1,通过gabor滤波对钢丝绳图像的8个不同方向进行滤波,提取钢丝绳图像的纹理特征;

5、step1-2,对滤波后的图像进行二值化处理和形态学操作后,寻找图像的最大轮廓,再次进行形态学操作获得前景与背景图像,结合后获得标记图,使用watershed函数输入钢丝绳原图像与标记图像获得钢丝绳本体分割结果;

6、step1-3,遍历分割后的图像,寻找图像中灰度值突变点,获得钢丝绳的左右轮廓点坐标,通过pca分析获得钢丝绳在图像中的偏转角度,最后通过左右轮廓点坐标以及偏转角度获得矫正后钢丝绳的平均直径;

7、step2,采用c++语言编程,根据本体分割的结果擦除图像多余背景区域后,使用分水岭分割算法,对钢丝绳图像进行绳股分割,最终获得钢丝绳绳股间区域的分割结果,具体的:

8、step2-1,根据钢丝绳本体分割所得到的钢丝绳左右轮廓点坐标结果对图像进行遍历,当点坐标在钢丝绳区域以外时,将该点位置的灰度值置为255,擦除图像多余背景区域;

9、step2-2,根据钢丝绳本体分割所得该图片中钢丝绳的平均直径,确定当前图片所需的直径倍乘系数;

10、step2-3,根据所得的直径倍乘系数,通过图像的形态学变换,获得钢丝绳图像的前景图片和背景图片,结合前景与背景图片获得标记图;

11、step2-4,使用watershed函数,输入钢丝绳原图与获得的标记图,执行分水岭分割,获得钢丝绳绳股间区域的分割结果。

12、进一步的,step1-1中,提取钢丝绳图像的纹理特征具体如下:

13、step1-1-1,首先确定gabor滤波器所需的参数,构造gabor滤波器核大小为3*3,定义gabor滤波器的标准差为3.0,定义gabor滤波器的波长为cv_pi/8,定义gabor滤波器的空间纵横比为0.5,定义gabor滤波器的相位偏移cv_pi*0.5,定义gabor滤波器的数据类型为64位浮点数;

14、step1-1-2,使用getgaborkernel函数获得8个不同方向的gabor滤波器,使用filter2d函数对图像进行gabor滤波;

15、step1-1-3,遍历得到的8个不同方向的滤波结果图像,取所有滤波图像中的最大值结合得到最终的滤波结果。

16、进一步的,step1-2中,使用watershed函数输入钢丝绳原图像与标记图像获得钢丝绳本体分割结果,具体如下:

17、step1-2-1,首先使用threshold函数,设置参数为thresh_otsu,通过step1-1-3中得到的滤波结果进行二值化处理;

18、step1-2-2,使用getstructuringelement函数,参数设置为morph_ellipse,构造大小为9*9的形态学核,使用dilate和erode函数,对二值化后的图像进行“4次膨胀-8次腐蚀-4次再膨胀”的形态学操作;

19、step1-2-3,使用findcontours函数寻找形态学操作后图像中的最大轮廓,并使用drawcontours函数将最大轮廓绘制在一张与原图像同样大小的空白黑色图像中;

20、step1-2-4,对绘制后的图像首先使用dilate函数,设置默认参数对图像进行单次膨胀,使用threshold函数,设置最大灰度值为128,最小灰度值为1,对膨胀后的图像进行二值化处理,获得背景图像,将绘制后的图像与背景图像使用mat参数类型的重载运算符“+”结合得到标记图;

21、step1-2-5,使用watershed函数,输入图像原图与step1-2-4中获得的标记图,执行分水岭分割,将执行分割后的标记图转换为cv_8u类型,获得最终的分割结果。

22、进一步的,step1-3具体步骤如下:

23、step1-3-1,首先从左至右按行遍历分割后的图像,检测灰度值突变点获得钢丝绳的左轮廓坐标,再从右至左按行遍历分割后的图像,检测灰度值突变点获得钢丝绳的右轮廓坐标;

24、step1-3-2,将得到的左右轮廓点坐标按顺序压入一个两列的mat类型的参数中,使用pca_analysis函数,设置参数为pca::data_as_row,进行pca分析,获得钢丝绳再图像中的偏转角度;

25、step1-3-3,根据得到的偏转角度,将左右轮廓点坐标反向旋转相同的角度矫正至竖直位置,通过计算矫正后左右轮廓点坐标的列坐标差值获得钢丝绳的平均直径。

26、进一步的,step2-2具体步骤如下:

27、step2-2-1,首先对于某一确定直径d0的钢丝绳图像进行绳股分割,获得一组针对该种直径钢丝绳合适的分割参数,分割参数包括各步形态学运算中的结构元大小m0和m1以及运算次数x0和x1,记录该组参数;

28、step2-2-2,根据每次本体分割后获得的当前钢丝绳图像的平均直径d,获得针对当前钢丝绳的直径倍乘系数n=d/d0。

29、进一步的,step2-3具体步骤如下:

30、step2-3-1,通过threshold函数,选择thresh_otsu参数获得图像全局阈值t,之后再次使用threshold函数,阈值设为t,最大灰度值设为255,参数选择thresh_binary,对钢丝绳图像进行阈值处理;

31、step2-3-2,使用morphologyex函数,参数选择morph_close,使用step2-2-1中确定闭运算所需的结构元大小m0,使用step2-2-1中确定的闭运算运算次数x0乘以step2-2-2中确定的直径倍乘系数n,获得当前所需的形态学运算次数x=n*x0,对阈值处理后的图像进行形态学闭运算,获得前景图像;

32、step2-3-3,使用dilate函数,使用step2-2-1中确定腐蚀所需的结构元大小m1,使用step2-2-1中确定的腐蚀运算次数x1乘以step2-2-2中确定的直径倍乘系数n,获得当前所需的形态学运算次数x=n*x1,对阈值处理后的图像进行腐蚀运算,对腐蚀后的图像使用threshold函数,阈值设为1,最大灰度值设为128,参数选择thresh_binary_inv,获得背景图像;

33、step2-3-4,使用mat参数类型的重载运算符“+”,将前景图像与背景图像相加得到标记图。

34、进一步的,step2-4中,执行分水岭分割后,将执行分割后的标记图转换为cv_8u类型,获得钢丝绳绳股间区域的分割结果。

35、与现有技术相比,本钢丝绳图像的分割算法包括本体分割和绳股分割两部分,首先采用c++编程语言通过gabor滤波提取图像纹理特征,结合形态学处理方法获得标记图,然后应用watershed函数进行分水岭分割以得到本体分割结果,随后基于得到的本体分割结果继续进行绳股分割,最终得到钢丝绳绳股间区域的分割结果,能够对钢丝绳图像进行高效自动化处理、且具有较高的精度,进而实现准确评估钢丝绳的状态、保证设备的安全运行。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1