电脑电脑上图片无法显示示图片怎么办????????

56680人阅读
Matlab(14)
【转载】:
(原文作者很是细心,感谢!)
&&&&&&形态学是提取图像特征的有力工具,针对二值图像和灰度图像的腐蚀、膨胀和重构的基本操作可以组合使用,以执行非常宽泛的任务。其练习代码和结果如下:
1 %% 第9章 形态学处理
3 %% imdilate膨胀
7 A1=imread('.\images\dipum_images_ch09\Fig0906(a)(broken-text).tif');
8 info=imfinfo('.\images\dipum_images_ch09\Fig0906(a)(broken-text).tif')
9 B=[<span style="color:# <span style="color:# <span style="color:#
<span style="color:# <span style="color:# <span style="color:#
<span style="color:# <span style="color:# <span style="color:#];
12 A2=imdilate(A1,B);%图像A1被结构元素B膨胀
13 A3=imdilate(A2,B);
14 A4=imdilate(A3,B);
16 subplot(<span style="color:#1),imshow(A1);
17 title('imdilate膨胀原始图像');
19 subplot(<span style="color:#2),imshow(A2);
20 title('使用B后1次膨胀后的图像');
22 subplot(<span style="color:#3),imshow(A3);
23 title('使用B后2次膨胀后的图像');
25 subplot(<span style="color:#4),imshow(A4);
26 title('使用B后3次膨胀后的图像');
27%imdilate图像膨胀处理过程运行结果如下:
29 %% imerode腐蚀
32 A1=imread('.\images\dipum_images_ch09\Fig0908(a)(wirebond-mask).tif');
33 subplot(<span style="color:#1),imshow(A1);
34 title('腐蚀原始图像');
36 %strel函数的功能是运用各种形状和大小构造结构元素
37 se1=strel('disk',<span style="color:#);%这里是创建一个半径为5的平坦型圆盘结构元素
38 A2=imerode(A1,se1);
39 subplot(<span style="color:#2),imshow(A2);
40 title('使用结构原始disk(5)腐蚀后的图像');
42 se2=strel('disk',<span style="color:#);
43 A3=imerode(A1,se2);
44 subplot(<span style="color:#3),imshow(A3);
45 title('使用结构原始disk(10)腐蚀后的图像');
47 se3=strel('disk',<span style="color:#);
48 A4=imerode(A1,se3);
49 subplot(<span style="color:#4),imshow(A4);
50 title('使用结构原始disk(20)腐蚀后的图像');
51 %图像腐蚀处理过程运行结果如下:
53 %% 开运算和闭运算
56 f=imread('.\images\dipum_images_ch09\Fig0910(a)(shapes).tif');
57 %se=strel('square',<span style="color:#');%方型结构元素
58 se=strel('disk',<span style="color:#');%圆盘型结构元素
59 imshow(f);%原图像
60 title('开闭运算原始图像')
61%运行结果如下:
63 %开运算数学上是先腐蚀后膨胀的结果
64 %开运算的物理结果为完全删除了不能包含结构元素的对象区域,平滑
65 %了对象的轮廓,断开了狭窄的连接,去掉了细小的突出部分
66 fo=imopen(f,se);%直接开运算
67 figure,subplot(<span style="color:#1),imshow(fo);
68 title('直接开运算');
70 %闭运算在数学上是先膨胀再腐蚀的结果
71 %闭运算的物理结果也是会平滑对象的轮廓,但是与开运算不同的是,闭运算
72 %一般会将狭窄的缺口连接起来形成细长的弯口,并填充比结构元素小的洞
73 fc=imclose(f,se);%直接闭运算
74 subplot(<span style="color:#2),imshow(fc);
75 title('直接闭运算');
77 foc=imclose(fo,se);%先开后闭运算
78 subplot(<span style="color:#3),imshow(foc);
79 title('先开后闭运算');
81 fco=imopen(fc,se);%先闭后开运算
82 subplot(<span style="color:#4),imshow(fco);
83 title('先闭后开运算');
84%开闭运算结果如下:
86 %先膨胀再腐蚀
87 fse=imdilate(f,se);%膨胀
89 %gcf为得到当前图像的句柄,当前图像是指例如PLOT,TITLE,SURF等
90 %get函数为得到物体的属性,get(<span style="color:#,'screensize')为返回所有物体screensize属性&#20540;
91 %set函数为设置物体的属性
92 figure,set(gcf,'outerposition',get(<span style="color:#,'screensize'));%具体目的是设置当前窗口的大小
93 subplot(<span style="color:#1),imshow(fse);
94 title('使用disk(5)先膨胀后的图像');
96 fes=imerode(fse,se);
97 subplot(<span style="color:#2),imshow(fes);
98 title('使用disk(5)先膨胀再腐蚀后的图像');
99%先膨胀后腐蚀图像如下:
<span style="color:#0
<span style="color:#1 %先腐蚀再膨胀
<span style="color:#2 fse=imerode(f,se);
<span style="color:#3 figure,set(gcf,'outerposition',get(<span style="color:#,'screensize'))
<span style="color:#4 subplot(<span style="color:#1),imshow(fse);
<span style="color:#5 title('使用disk(5)先腐蚀后的图像');
<span style="color:#6
<span style="color:#7 fes=imdilate(fse,se);
<span style="color:#8 subplot(<span style="color:#2),imshow(fes);
<span style="color:#9 title('使用disk(5)先腐蚀再膨胀后的图像');
<span style="color:#0%先腐蚀后膨胀的图像如下:
<span style="color:#1
<span style="color:#2 %% imopen imclose在指纹上的应用
<span style="color:#3 clc
<span style="color:#4 clear
<span style="color:#5 f=imread('.\images\dipum_images_ch09\Fig0911(a)(noisy-fingerprint).tif');
<span style="color:#6 se=strel('square',<span style="color:#);%边长为3的方形结构元素
<span style="color:#7 subplot(<span style="color:#1),imshow(f);
<span style="color:#8 title('指纹原始图像');
<span style="color:#9
<span style="color:#0 A=imerode(f,se);%腐蚀
<span style="color:#1 subplot(<span style="color:#2),imshow(A);
<span style="color:#2 title('腐蚀后的指纹原始图像');
<span style="color:#3%指纹原始图像和腐蚀后的图像结果如下:
<span style="color:#4
<span style="color:#5 fo=imopen(f,se);
<span style="color:#6 figure,subplot(<span style="color:#1),imshow(fo);
<span style="color:#7 title('使用square(3)开操作后的图像');
<span style="color:#8
<span style="color:#9 fc=imclose(f,se);
<span style="color:#0 subplot(<span style="color:#2),imshow(fc);
<span style="color:#1 title('使用square闭操作后的图像');
<span style="color:#2
<span style="color:#3 foc=imclose(fo,se);
<span style="color:#4 subplot(<span style="color:#3),imshow(foc);
<span style="color:#5 title('使用square(3)先开后闭操作后的图像')
<span style="color:#6
<span style="color:#7 fco=imopen(fc,se);
<span style="color:#8 subplot(<span style="color:#4),imshow(fco);
<span style="color:#9 title('使用square(3)先闭后开操作后的图像');
<span style="color:#0%指纹图像开闭操作过程结果如下:
<span style="color:#1
<span style="color:#2 %% bwhitmiss击中或击不中变换
<span style="color:#3 clc
<span style="color:#4 clear
<span style="color:#5 f=imread('.\images\dipum_images_ch09\Fig0913(a)(small-squares).tif');
<span style="color:#6 imshow(f);
<span style="color:#7 title('击中或不击中原始图像');
<span style="color:#8%击中或不击中原始图像显示结果如下:
<span style="color:#9
<span style="color:#0 B1=strel([<span style="color:# <span style="color:# <span style="color:#;<span style="color:# <span style="color:# <span style="color:#;<span style="color:# <span style="color:# <span style="color:#]);%击中:要求击中所有1的位置
<span style="color:#1 B2=strel([<span style="color:# <span style="color:# <span style="color:#;<span style="color:# <span style="color:# <span style="color:#;<span style="color:# <span style="color:# <span style="color:#]);%击不中,要求击不中所有1的位置
<span style="color:#2 B3=strel([<span style="color:# <span style="color:# <span style="color:#;<span style="color:# <span style="color:# <span style="color:#;<span style="color:# <span style="color:# <span style="color:#]);%击中
<span style="color:#3 B4=strel([<span style="color:# <span style="color:# <span style="color:#;<span style="color:# <span style="color:# <span style="color:#;<span style="color:# <span style="color:# <span style="color:#]);%击不中
<span style="color:#4 B5=strel([<span style="color:# <span style="color:# <span style="color:#;<span style="color:# <span style="color:# <span style="color:#;<span style="color:# <span style="color:# <span style="color:#]);%击中
<span style="color:#5 B6=strel([<span style="color:# <span style="color:# <span style="color:#;<span style="color:# <span style="color:# <span style="color:#;<span style="color:# <span style="color:# <span style="color:#]);%击不中
<span style="color:#6
<span style="color:#7 g=imerode(f,B1)&imerode(~f,B2)%利用定义来实现击中或击不中
<span style="color:#8 figure,subplot(<span style="color:#1),imshow(g);
<span style="color:#9 title('定义实现组1击中击不中图像');
<span style="color:#0
<span style="color:#1 g1=bwhitmiss(f,B1,B2);
<span style="color:#2 subplot(<span style="color:#2),imshow(g1);
<span style="color:#3 title('结构数组1击中击不中后的图像');
<span style="color:#4
<span style="color:#5 g2=bwhitmiss(f,B3,B4);
<span style="color:#6 subplot(<span style="color:#3),imshow(g2);
<span style="color:#7 title('结构数组2击中击不中的图像');
<span style="color:#8
<span style="color:#9 g3=bwhitmiss(f,B5,B6);
<span style="color:#0 subplot(<span style="color:#4),imshow(g3);
<span style="color:#1 title('结构数组3击中击不中的图像');
<span style="color:#2%击中击不中变换后图像如下:
<span style="color:#3
<span style="color:#4 %%makelut
<span style="color:#5 clc
<span style="color:#6 clear
<span style="color:#7
<span style="color:#8 f=inline('sum(x(:))&=3');%inline是用来定义局部函数的
<span style="color:#9 lut2=makelut(f,<span style="color:#)%为函数f构造一个接收2*2矩阵的查找表
<span style="color:#0 lut3=makelut(f,<span style="color:#)
<span style="color:#1
<span style="color:#2 %% Conway生命游戏
<span style="color:#3 clc
<span style="color:#4 clear
<span style="color:#5 lut=makelut(@conwaylaws,<span style="color:#);
<span style="color:#6 bw1=& [<span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#
<span style="color:#7&&&&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#
<span style="color:#8&&&&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#
<span style="color:#9&&&&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#
<span style="color:#0&&&&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#
<span style="color:#1&&&&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#
<span style="color:#2&&&&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#
<span style="color:#3&&&&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#
<span style="color:#4&&&&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#
<span style="color:#5&&&&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#&&&& <span style="color:#& ];
<span style="color:#6 subplot(<span style="color:#1),imshow(bw1,'InitialMagnification','fit');
<span style="color:#7 title('Generation 1');
<span style="color:#8
<span style="color:#9 bw2=applylut(bw1,lut);
<span style="color:#0 subplot(<span style="color:#2),imshow(bw2,'InitialMagnification','fit'),
<span style="color:#1 title('Generation 2');
<span style="color:#2
<span style="color:#3 bw3=applylut(bw2,lut);
<span style="color:#4 subplot(<span style="color:#3),imshow(bw3,'InitialMagnification','fit');
<span style="color:#5 title('Generation 3');
<span style="color:#6
<span style="color:#7 temp=bw1;
<span style="color:#8 for i=<span style="color:#:<span style="color:#0
<span style="color:#9&&&& bw100=applylut(temp,lut);
<span style="color:#0&&&& temp=bw100;
<span style="color:#1 end
<span style="color:#2 subplot(<span style="color:#4),imshow(bw100,'InitialMagnification','fit')
<span style="color:#3 title('Generation 100');
<span style="color:#4%显示Generation结果如下:
<span style="color:#5
<span style="color:#6 %% getsequence
<span style="color:#7 clc
<span style="color:#8 clear
<span style="color:#9 se=strel('diamond',<span style="color:#)
<span style="color:#0 decomp=getsequence(se)%getsequence函数为得到分解的strel序列
<span style="color:#1 decomp(<span style="color:#)
<span style="color:#2 decomp(<span style="color:#)
<span style="color:#3
<span style="color:#4 %% endpoints
<span style="color:#5 clc
<span style="color:#6 clear
<span style="color:#7
<span style="color:#8 f1=imread('.\images\dipum_images_ch09\Fig0914(a)(bone-skel).tif');
<span style="color:#9 subplot(<span style="color:#1),imshow(f1);
<span style="color:#0 title('原始形态骨架图像');
<span style="color:#1
<span style="color:#2 g1=endpoints(f1);
<span style="color:#3 %set(gcf,'outerposition',get(<span style="color:#,'screensize'));%运行完后自动生成最大的窗口
<span style="color:#4 subplot(<span style="color:#2),imshow(g1);
<span style="color:#5 title('骨架图像的端点图像');
236 %骨架头像端点检测头像如下:
<span style="color:#7
<span style="color:#8 f2=imread('.\images\dipum_images_ch09\Fig0916(a)(bone).tif');
<span style="color:#9 figure,subplot(<span style="color:#1),imshow(f2);
<span style="color:#0 title('原始骨头图像');
<span style="color:#1
<span style="color:#2 g2=endpoints(f2);
<span style="color:#3 subplot(<span style="color:#2),imshow(g2);
<span style="color:#4 title('骨头图像端点头像');%结果是没有端点
<span style="color:#5%骨头头像端点检测图像如下:
<span style="color:#6
<span style="color:#7 %% bwmorph组合常见形态学之细化
<span style="color:#8 clc
<span style="color:#9 clear
<span style="color:#0 f=imread('.\images\dipum_images_ch09\Fig0911(a)(noisy-fingerprint).tif');
<span style="color:#1 subplot(<span style="color:#1),imshow(f);
<span style="color:#2 title('指纹图像细化原图');
<span style="color:#3
<span style="color:#4 g1=bwmorph(f,'thin',<span style="color:#);
<span style="color:#5 subplot(<span style="color:#2),imshow(g1);
<span style="color:#6 title('指纹图像细化原图');
<span style="color:#7
<span style="color:#8 g2=bwmorph(f,'thin',<span style="color:#);
<span style="color:#9 subplot(<span style="color:#3),imshow(g2);
<span style="color:#0 title('指纹图像细化原图');
<span style="color:#1
<span style="color:#2 g3=bwmorph(f,'thin',Inf);
<span style="color:#3 subplot(<span style="color:#4),imshow(g3);
<span style="color:#4 title('指纹图像细化原图');
<span style="color:#5%指纹图像细化过程显示如下:
<span style="color:#6
<span style="color:#7 %% bwmorph组合常见形态学之骨骼化
<span style="color:#8 clc
<span style="color:#9 clear
<span style="color:#0 f=imread('.\images\dipum_images_ch09\Fig0911(a)(noisy-fingerprint).tif');
<span style="color:#1 subplot(<span style="color:#1),imshow(f);
<span style="color:#2 title('指纹图像骨骼化原图');
<span style="color:#3
<span style="color:#4 fs=bwmorph(f,'skel',Inf);
<span style="color:#5 subplot(<span style="color:#2),imshow(fs);
<span style="color:#6 title('指纹图像骨骼化');
<span style="color:#7
<span style="color:#8 for k=<span style="color:#:<span style="color:#
<span style="color:#9&&&& fs=fs&~endpoints(fs);
<span style="color:#0 end
<span style="color:#1 subplot(<span style="color:#3),imshow(fs);
<span style="color:#2 title('指纹图像修剪后骨骼话');
<span style="color:#3%指纹图像骨骼化过程显示:
<span style="color:#4
<span style="color:#5 %% 使用函数bwlabel标注连通分量
<span style="color:#6 clc
<span style="color:#7 clear
<span style="color:#8 f=imread('.\images\dipum_images_ch09\Fig0917(a)(ten-objects).tif');
<span style="color:#9 imshow(f),title('标注连通分量原始图像');
<span style="color:#0%其结果显示如下:
<span style="color:#1
<span style="color:#2 [L,n]=bwlabel(f);%L为标记矩阵,n为找到连接分量的总数
<span style="color:#3 [r,c]=find(L==<span style="color:#);%返回第3个对象所有像素的行索引和列索引
<span style="color:#4
<span style="color:#5 rbar=mean(r);
<span style="color:#6 cbar=mean(c);
<span style="color:#7
<span style="color:#8 figure,imshow(f)
<span style="color:#9 hold on%保持当前图像使其不被刷新
<span style="color:#0 for k=<span style="color:#:n
<span style="color:#1&&&& [r,c]=find(L==k);
<span style="color:#2&&&& rbar=mean(r);
<span style="color:#3&&&& cbar=mean(c);
<span style="color:#4&&&& plot(cbar,rbar,'Marker','o','MarkerEdgeColor','k',...
<span style="color:#5&&&&&&&&& 'MarkerFaceColor','k','MarkerSize',<span style="color:#);%这个plot函数用法不是很熟悉
<span style="color:#6&&&& plot(cbar,rbar,'Marker','*','MarkerFaceColor','w');%其中的marker为标记
<span style="color:#7 end
<span style="color:#8 title('标记所有对象质心后的图像');
<span style="color:#9
<span style="color:#0 %% 由重构做开运算
<span style="color:#1 clc
<span style="color:#2 clear
<span style="color:#3 f=imread('.\images\dipum_images_ch09\Fig0922(a)(book-text).tif');
<span style="color:#4 subplot(<span style="color:#1),imshow(f);
<span style="color:#5 title('重构原始图像');
<span style="color:#6
<span style="color:#7 fe=imerode(f,ones(<span style="color:#,<span style="color:#));%竖线腐蚀
<span style="color:#8 subplot(<span style="color:#2),imshow(fe);
<span style="color:#9 title('使用竖线腐蚀后的结果');
<span style="color:#0
<span style="color:#1 fo=imopen(f,ones(<span style="color:#,<span style="color:#));%竖线做开运算
<span style="color:#2 subplot(<span style="color:#3),imshow(fo);
<span style="color:#3 title('使用竖线做开运算结果');
<span style="color:#4
<span style="color:#5 fobr=imreconstruct(fe,f);%fe做标记
<span style="color:#6 subplot(<span style="color:#4),imshow(fobr);
<span style="color:#7 title('使用竖线做重构开运算');
<span style="color:#8
<span style="color:#9 ff=imfill(f,'holes');%对f进行孔洞填充
<span style="color:#0 subplot(<span style="color:#5),imshow(ff);
<span style="color:#1 title('对f填充孔洞后的图像');
<span style="color:#2
<span style="color:#3 fc=imclearborder(f,<span style="color:#);%清除边界,2维8邻接
<span style="color:#4 subplot(<span style="color:#6),imshow(fc);
<span style="color:#5 title('对f清除边界后的图像');
<span style="color:#6%图像重构过程显示如下:
<span style="color:#7
<span style="color:#8 %% 使用顶帽变换和底帽变换
<span style="color:#9 clc
<span style="color:#0 clear
<span style="color:#1 f=imread('.\images\dipum_images_ch09\Fig0926(a)(rice).tif');
<span style="color:#2 subplot(<span style="color:#1),imshow(f);
<span style="color:#3 title('顶帽底帽变换原始图像');
<span style="color:#4
<span style="color:#5 se=strel('disk',<span style="color:#);%产生结构元素
<span style="color:#6 %顶帽变换是指原始图像减去其开运算的图像
<span style="color:#7 %而开运算可用于补偿不均匀的背景亮度,所以用一个大的结构元素做开运算后
<span style="color:#8 %然后用原图像减去这个开运算,就得到了背景均衡的图像,这也叫做是图像的顶帽运算
<span style="color:#9 f1=imtophat(f,se);%使用顶帽变换
<span style="color:#0 subplot(<span style="color:#2),imshow(f1);
<span style="color:#1 title('使用顶帽变换后的图像');
<span style="color:#2
<span style="color:#3 %底帽变换是原始图像减去其闭运算后的图像
<span style="color:#4 f2=imbothat(imcomplement(f),se);%使用底帽变换,为什么原图像要求补呢?
<span style="color:#5 %f2=imbothat(f,se);%使用底帽变换
<span style="color:#6 subplot(<span style="color:#3),imshow(f2);
<span style="color:#7 title('使用底帽变换后的图像');
<span style="color:#8
<span style="color:#9 %顶帽变换和底帽变换联合起来用,用于增加对比度
<span style="color:#0 f3=imsubtract(imadd(f,imtophat(f,se)),imbothat(f,se));%里面参数好像不合理?
<span style="color:#1 subplot(<span style="color:#4),imshow(f3);
<span style="color:#2 title('使用顶帽底帽联合变换后图像');
<span style="color:#3%顶帽底帽变换过程图像如下:
<span style="color:#4
<span style="color:#5 %%使用开运算和闭运算做形态学平滑
<span style="color:#6 %由于开运算可以除去比结构元素更小的明亮细节,闭运算可以除去比结构元素更小的暗色细节
<span style="color:#7 %所以它们经常组合起来一起进行平滑图像并去除噪声
<span style="color:#8 clc
<span style="color:#9 clear
<span style="color:#0 f=imread('.\images\dipum_images_ch09\Fig0925(a)(dowels).tif');
<span style="color:#1 subplot(<span style="color:#1),imshow(f);
<span style="color:#2 title('木钉图像原图');
<span style="color:#3
<span style="color:#4 se=strel('disk',<span style="color:#);%disk其实就是一个八边形
<span style="color:#5 fo=imopen(f,se);%经过开运算
<span style="color:#6 subplot(<span style="color:#2),imshow(f);
<span style="color:#7 title('使用半径5的disk开运算后的图像');
<span style="color:#8
<span style="color:#9 foc=imclose(fo,se);
<span style="color:#0 subplot(<span style="color:#3),imshow(foc);
<span style="color:#1 title('先开后闭的图像');
<span style="color:#2
<span style="color:#3 fasf=f;
<span style="color:#4 for i=<span style="color:#:<span style="color:#
<span style="color:#5&&&& se=strel('disk',i);
<span style="color:#6&&&& fasf=imclose(imopen(fasf,se),se);
<span style="color:#7 end
<span style="color:#8 subplot(<span style="color:#4),imshow(fasf);
<span style="color:#9 title('使用开闭交替滤波后图像');
<span style="color:#0%使用开运算和闭运算做形态学平滑结果如下:
<span style="color:#1
<span style="color:#2 %% 颗粒分析
<span style="color:#3 clc
<span style="color:#4 clear
<span style="color:#5 f=imread('.\images\dipum_images_ch09\Fig0925(a)(dowels).tif');
<span style="color:#6
<span style="color:#7 sumpixels=zeros(<span style="color:#,<span style="color:#);
<span style="color:#8 for k=<span style="color:#:<span style="color:#
<span style="color:#9&&&& se=strel('disk',k);
<span style="color:#0&&&& fo=imopen(f,se);
<span style="color:#1&&&& sumpixels(k&#43;<span style="color:#)=sum(fo(:));
<span style="color:#2 end
<span style="color:#3
<span style="color:#4 %可以看到,连续开运算之间的表面积会减少
<span style="color:#5 plot(<span style="color:#:<span style="color:#,sumpixels),xlabel('k'),ylabel('surface area');
<span style="color:#6 title('表面积和结构元素半径之间的关系');
<span style="color:#7%其运算结果如下:&&&
<span style="color:#8
<span style="color:#9 figure,plot(-diff(sumpixels));%diff()函数为差分或者近&#20284;倒数,即相邻2个之间的差&#20540;
<span style="color:#0 xlabel('k'),ylabel('surface area reduction');
<span style="color:#1 title('减少的表面积和结构元素半径之间的关系');
<span style="color:#2%其运算结果如下:
<span style="color:#3
<span style="color:#4 %% 使用重构删除复杂图像的背景
<span style="color:#5 clc
<span style="color:#6 clear
<span style="color:#7 f=imread('.\images\dipum_images_ch09\Fig0930(a)(calculator).tif');
<span style="color:#8 subplot(<span style="color:#1),imshow(f);
<span style="color:#9 title('灰度级重构原图像');
<span style="color:#0
<span style="color:#1 f_obr=imreconstruct(imerode(f,ones(<span style="color:#,<span style="color:#)),f);
<span style="color:#2 subplot(<span style="color:#2),imshow(f_obr);
<span style="color:#3 title('经开运算重构图');
<span style="color:#4
<span style="color:#5 f_o=imopen(f,ones(<span style="color:#,<span style="color:#));
<span style="color:#6 subplot(<span style="color:#3),imshow(f_o);
<span style="color:#7 title('经开运算后图');
<span style="color:#8
<span style="color:#9 f_thr=imsubtract(f,f_obr);
<span style="color:#0 subplot(<span style="color:#4),imshow(f_thr);
<span style="color:#1 title('顶帽运算重构图')
<span style="color:#2%使用重构删除复杂图像的背景1:
<span style="color:#3
<span style="color:#4 f_th=imsubtract(f,f_o)
<span style="color:#5 figure,subplot(<span style="color:#1),imshow(f_th);
<span style="color:#6 title('经顶帽运算图');
<span style="color:#7
<span style="color:#8 g_obr=imreconstruct(imerode(f_thr,ones(<span style="color:#,<span style="color:#)),f_thr);
<span style="color:#9 subplot(<span style="color:#2),imshow(g_obr);
<span style="color:#0 title('用水平线对f_thr经开运算后重构图');
<span style="color:#1
<span style="color:#2 g_obrd=imdilate(g_obr,ones(<span style="color:#,<span style="color:#));
<span style="color:#3 subplot(<span style="color:#3),imshow(g_obrd);
<span style="color:#4 title('使用水平线对上图进行膨胀');
<span style="color:#5
<span style="color:#6 f2=imreconstruct(min(g_obrd,f_thr),f_thr);
<span style="color:#7 subplot(<span style="color:#4),imshow(f2);
<span style="color:#8 title('最后的重构结果');
<span style="color:#9%使用重构删除复杂图像的背景2:
&&& 形态学这一章很有用,因为它还可以应用在图像分割中。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:240002次
积分:2379
积分:2379
排名:第12482名
原创:51篇
转载:25篇
评论:49条
(1)(1)(2)(1)(1)(5)(2)(1)(2)(3)(2)(4)(2)(2)(3)(2)(2)(1)(1)(2)(1)(2)(1)(1)(1)(1)(1)(1)(1)(3)(4)(4)(1)(7)(6)(1)

我要回帖

更多关于 电脑微信图片无法显示 的文章

 

随机推荐