缺陷检测基于区域生长算法实现对焊接孔隙检测matlab源码

Posted Matlab走起

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了缺陷检测基于区域生长算法实现对焊接孔隙检测matlab源码相关的知识,希望对你有一定的参考价值。

原理

区域生长算法的基本思想是将有相似性质的像素点合并到一起。对每一个区域要先指定一个种子点作为生长的起点,然后将种子点周围领域的像素点和种子点进行对比,将具有相似性质的点合并起来继续向外生长,直到没有满足条件的像素被包括进来为止。这样一个区域的生长就完成了。这个过程中有几个关键的问题:

a> 给定种子点(种子点如何选取?)

      种子点的选取很多时候都采用人工交互的方法实现,也有用其他方式的,比如寻找物体并提取物体内部点作为种子点。

b> 确定在生长过程中能将相邻像素包括进来的准则

     灰度图像的差值;彩色图像的颜色等等。都是关于像素与像素间的关系描述。

c> 生长的停止条件

 

算法步骤 :

a>  创建一个空白的图像(全黑);

b> 将种子点存入vector中,vector中存储待生长的种子点;

c> 依次弹出种子点并判断种子点如周围8邻域的关系(生长规则),相似的点则作为下次生长的种子点;

d> vector中不存在种子点后就停止生长。

 
  1. clear all, close all, clc

  2.  
  3. f = imread('defective_weld.tif');

  4. imshow(f), title('原始图象')

  5.  
  6. figure, [counts,x] = imhist(f); bar(x,counts), title('原始图象的直方图')

  7.  
  8. S = 255;

  9. T = 65;

  10. [g, NR, SI, TI] = regiongrow(f, S, T);

  11. figure, imshow(SI), title('种子点图象')

  12. figure, imshow(TI), title('阈值测试后的图象')

  13. figure, imshow(g), title('8连通性分析后的图象')

  14. bw = edge(g, 'canny');

  15. figure, imshow(bw), title('边缘图象')

  16. ff = f;

  17. ff(bw) = 0;

  18. figure, imshow(ff), title('叠加图象')

完整代码或者代写添加QQ1575304183

 

以上是关于缺陷检测基于区域生长算法实现对焊接孔隙检测matlab源码的主要内容,如果未能解决你的问题,请参考以下文章

使用形态学处理相关算法对芯片电路图焊接锡点缺陷进行检测

毕业设计/matlab系列基于区域生长和形态学处理的道路检测实现

毕业设计/matlab系列基于区域生长和形态学处理的道路检测实现

[激光原理与应用-45]:《焊接质量检测》-2- 常见焊接缺陷与检验方法

用matlab如何通过图像分割来检测边界

缺陷识别基于支持向量机算法实现金属表面缺陷检测