close all
clear all
I=imread('tig.jpg') %读取图像
I1=im2double(I) %将彩图序列变成双精度
I2=rgb2gray(I1) %将彩色图变成灰色图
[thr, sorh, keepapp]=ddencmp('den','wv',I2)
I3=wdencmp('gbl',I2,'sym4',2,thr,sorh,keepapp) %小波除噪
I4=medfilt2(I3,[9 9]) %中值滤波
I5=imresize(I4,0.2,'bicubic') %图像大小
BW1=edge(I5,'sobel') %sobel图像边缘提取
BW2=edge(I5,'roberts') %roberts图像边缘提取
BW3=edge(I5,'prewitt') %prewitt图像边缘提取
BW4=edge(I5,'log') %log图像边缘提取
BW5=edge(I5,'canny') %canny图像边缘提取
h=fspecial('gaussian',5) %高斯滤波
BW6=edge(I5,'zerocross',[ ],h) %zerocross图像边缘提取
figure
subplot(1,3,1) %图划分为一行三幅图,第一幅图
imshow(I2) %绘图
figure
subplot(1,3,1)
imshow(BW1)
title('Sobel算子')
subplot(1,3,2)
imshow(BW2)
title('Roberts算子')
subplot(1,3,3)
imshow(BW3)
title('Prewitt算子')
clear I=imread('bai.jpg') %读入图像q=imadjust(I,[.2 .3 0.6 .7 1],[])%增强图像的对比度
j=rgb2gray(q) %彩色图像变灰度图像
j1=im2bw(q,230/255)%二值化
se90=strel('line',3,90) %构造元素
se0=strel('line',3,0) %同上
BW2=imdilate(j1,[se90 se0]) % 用构造的元素膨胀
BW3=bwareaopen(BW2,100)%开 *** 作
BW3=~BW3%取反
BW4=bwareaopen(BW3,20)%开
BW5=bwperim(BW4)%计算BW4周长
[imx,imy]=size(BW5)计算长宽
L=bwlabel(BW5,8)%用不同的数字根据是否连通标记图像,
a=max(max(L))%得到L图像中标记结果的最大值
BW6=bwfill(BW5,'hole')%填充背景
I2=I
for i=1:3I2(:,:,i)=I2(:,:,i).*uint8(BW6)
end imshow(I2)有大神能逐条解释一下语句吗,本人是菜鸟啊,跪求!!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)