主要是基础图像的边缘检测、膨胀、区域填充等处理,确定发动机截面图中的阴影区域面积、周长,达到了检测发动机是否有损坏的目的。
第一,对原始图像进行边缘检测,提取出边缘从而将目标和背景区分开来。
第二,由于本文的原始图像有的阴影部分区域是不连续的,如果直接进行区域填充,有的目标区域是不能被填充到的,所以先对图像进行膨胀操作,填充物体内细小空洞,连接临近物体、平滑其边界,使之连续从而达到提取所有目标区域的目的,而没有遗漏。然后再进行区域填充,从边界内的某一个点开始,用1填充整个区域,以便后续操作。
最后利用边界对象抑制,去除二值图像中处在图像边缘的不完整,再调用区域属性函数,即可算出目标区域的周长和面积。这个问题主要难点在于有些阴影部分的轮廓是不连续的,所以这里采用图像膨胀处理,将边缘连续化,查了下资料,好像也可以使用区域增长技术,有兴趣的可以看下。有下面我把代码贴出来,供大家参考:
clc;clear all
I2=imread('C:\\Users\\Administrator\\Desktop\\1.bmp');
figure;
imshow(I2);
[junk, threshold] = edge(I2,'sobel'); fudgeFactor=.5;
BWs=edge(I2,