Matlab对钢板表面缺陷检测:几何校正、分割、填充红色、计算面积

init=imread('D:\MyDocuments\picture analysis\lab three\41524617\1.jpg');  %读入图片
G=rgb2gray(init);%转换成灰度图
subplot(521) ,  imshow(init),  title('原图');
subplot(522) ,  imshow(G),  title('原灰度图');
%radon变换实现图像矫正  
E=edge(G);  
theta=1:180;  
[R,xp]=radon(E,theta);  
[E,J]=find(R>=max(max(R)));%记录角度  
Q=90-J;  %求出倾斜角
I=imrotate(G,Q,'bilinear','crop');  %旋转矫正
subplot(512) ,  imshow(I),  title('矫正后的图像');
%otsu阈值分割
bw=graythresh(I); %自动获取合适阈值
new=im2bw(I,bw);%进行阈值分割
subplot(513) ,  imshow(new),  title('分割出来的图形')
%闭运算降噪
newI = bwmorph(new,'close');
subplot(514) ,imshow(newI),title('闭运算降噪后的图像');
%图像叠加&计算面积
newII = I;
I3(:,:,1)=I;
I3(:,:,2)=I;
I3(:,:,3)=I;
count=0;
for i = 1:400
    for j = 1:800
        if(newI(i,j)==0)
            newII(i,j) = 0; %将中间残缺部分变成纯黑色
        end
        if(I(i,j)-newII(i,j)~=0) %改变值的部分就是中间残缺
            count=count+1;    %对残缺进行计算求面积和标记为红色
            I3(i,j,1)=255;
            I3(i,j,2)=0;
            I3(i,j,3)=0;
        end
    end
end
mianji =count ;
subplot(515),imshow(I3),title('分割后添加到原图');
%计算缺陷面积
%输出图像
imwrite(newI,'分割.jpg');
imwrite(I3,'分割后叠加到原图.jpg');
 


                
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值