MATLAB图像分割和形态学处理 痛定思痛。 2022-08-28 14:56 200阅读 0赞 ## **MATLAB图像分割和形态学处理** ## **一、实验目的** 1. 掌握图像分割的基本方法。 2. 掌握形态学处理的基本方法。 3. 学会使用MATLAB编程实现上述方法。 **二、实验任务** (1)编程实现基于阈值的图像分割方法和边缘检测方法。 (2)编程实现膨胀、腐蚀方法。 (3)编程实现开运算和闭运算的方法。 (4)编程实现提取骨架和细化的方法。 **三、实验配套的主要仪器设备及台(套)数** 教师示范用投影仪一台 微型计算机每个学生一台 **四、报告要求** 记录每一步的实验过程。 **五、实验记录** 5.1阈值图像分割方法1——点检测 5.1.1程序 clc clear data = imread('lianzipoint.jpg'); w = \[-1 -1 -1; -1 8 -1; -1 -1 -1\] g =abs(imfilter(double(data),w)); t =max(g(:)); g1=(g>=t); \[m n\]=find(g1) figure imshow(data) hold on plot(n,m,'ro') g1=(g>=t-200); \[m n\]=find(g1) figure imshow(data) hold on plot(n,m,'ro') g1=(g>=t-800); \[m n\]=find(g1) figure imshow(data) hold on plot(n,m,'ro') 5.1.2 效果 ![v2-1463112d719a91b0b58bafb667b2cafd\_b.jpg][v2-1463112d719a91b0b58bafb667b2cafd_b.jpg] ![v2-650d7cf11ea8118ca6a582ea32f06a3d\_b.jpg][v2-650d7cf11ea8118ca6a582ea32f06a3d_b.jpg] ![v2-577dce77955a5c0e5fd6e4aa6ab411df\_b.jpg][v2-577dce77955a5c0e5fd6e4aa6ab411df_b.jpg] 分析:随着阈值的减小,所检测出的点越来越多 5.2 阈值分割方法2——线检测 5.2.1程序 clc clear data = imread('xian.jpg'); subplot(221),imshow(data); title('检测指定方向线的原始图像'); w = \[2 -1 -1; -1 2 -1; -1 -1 2\]; g =abs(imfilter(double(data),w)); subplot(222),imshow(g,\[\]) title('使用-45度检测器处理后的图像'); gtop = g(1:40,1:40); gtop = pixeldup(gtop,4);%piceldup函数是将图片放大相应倍数 subplot(223),imshow(gtop,\[\]) title('-45度检测后左上角放大图'); gbot = g(end-40:end,end-40:end); gbot = pixeldup(gbot,4); subplot(224),imshow(gbot,\[\]) title('-45度检测后右下角后放大图'); 5.2.2 处理效果 ![v2-329eb113c146334ffbcf9d2e131bb25c\_b.jpg][v2-329eb113c146334ffbcf9d2e131bb25c_b.jpg] 分析:-45度方向上的直线,经过处理后效果明显,其他方向上的线比较模糊。 5.3 阈值分割方法3——边缘检测 5.3.1程序 clc clear f=imread('bianyuan.jpg'); f= rgb2gray(f); subplot(321),imshow(f); title('sobel检测的原始图像'); \[gv,t\]=edge(f,'sobel','vertical'); %斜线因为具有垂直分量,所以也能够被检测出来 subplot(322),imshow(gv); title('sobel垂直方向检测后图像'); gv=edge(f,'sobel',0.15,'vertical'); subplot(323),imshow(gv); title('sobel垂直检测0.15阈值后图像'); gboth=edge(f,'sobel',0.15); subplot(324),imshow(gboth); title('sobel水平垂直方向阈值0.15后图像'); w45=\[-2 -1 0 86 -1 0 1 87 0 1 2\]; g45=imfilter(double(f),w45,'replicate'); T=0.3\*max(abs(g45(:))); g45=g45>=T; subplot(325),imshow(g45); title('sobel正45度方向上检测图'); w\_45=\[0 -1 -2 95 1 0 -1 96 2 1 0\]; g\_45=imfilter(double(f),w\_45,'replicate'); T=0.3\*max(abs(g\_45(:))); g\_45=g\_45>=T; subplot(326),imshow(g\_45); title('sobel负45度方向上检测图'); 5.3.2 效果 ![v2-53e922c84e99378653707e1f7e783f7c\_b.jpg][v2-53e922c84e99378653707e1f7e783f7c_b.jpg] 5.3.2 边缘检测器的比较 5.3.2.1 程序 clc clear f=imread('dalouj.jpg'); imshow(f) \[g\_sobel\_default , ts\] = edge(f,'sobel'); imshow(g\_sobel\_default); title('g sobel default'); \[g\_log\_default,tlog\]=edge(f,'log'); figure imshow(g\_log\_default); title('g log default'); \[g\_canny\_default,tc\]=edge(f,'canny'); figure,imshow(g\_canny\_default); title('g canny default'); g\_sobel\_best=edge(f,'sobel',0.25); figure,imshow(g\_sobel\_best); title('g sobel best'); g\_log\_best=edge(f,'log',0.003,2.25); figure,imshow(g\_log\_best); title('g log best'); g\_canny\_best=edge(f,'canny',\[0.04 0.10\],1.5); figure,imshow(g\_canny\_best); title('g canny best'); 5.3.2.1 效果 ![v2-41f311a687c637ae63f8eedfc633bd90\_b.jpg][v2-41f311a687c637ae63f8eedfc633bd90_b.jpg] ![v2-8f89d7d6c30cf0817d8144965c7ca3c6\_b.jpg][v2-8f89d7d6c30cf0817d8144965c7ca3c6_b.jpg] ![v2-b424b421e2b1a89c93ba2c1d0cff7f49\_b.jpg][v2-b424b421e2b1a89c93ba2c1d0cff7f49_b.jpg] ![v2-1f3aacde3845db303625fae01c48ab2e\_b.jpg][v2-1f3aacde3845db303625fae01c48ab2e_b.jpg] ![v2-415a08def2166fd010659ed0add2daff\_b.jpg][v2-415a08def2166fd010659ed0add2daff_b.jpg] ![v2-a8cdce822a491b04182b352afda53c23\_b.jpg][v2-a8cdce822a491b04182b352afda53c23_b.jpg] 5.2 编程实现膨胀和腐蚀 5.2.1 膨胀 5.2.1.1程序 clc clear A1=imread('beitie.jpg'); A1 =im2bw(A1); B=\[1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\]; A2=imdilate(A1,B);%图像A1被结构元素B膨胀 A3=imdilate(A2,B); A4=imdilate(A3,B); figure,imshow(A1); title('imdilate膨胀原始图像'); figure,imshow(A2); title('使用B后1次膨胀后的图像'); figure,imshow(A3); title('使用B后2次膨胀后的图像'); figure,imshow(A4); title('使用B后3次膨胀后的图像'); 5.2.1.2 效果 ![v2-9b8e66e2d8649d736f761b485db41770\_b.jpg][v2-9b8e66e2d8649d736f761b485db41770_b.jpg] ![v2-05210894e86206cfc12f05b2a69fda0e\_b.jpg][v2-05210894e86206cfc12f05b2a69fda0e_b.jpg] ![v2-633f96359821f4a11e526d11c92f51dd\_b.jpg][v2-633f96359821f4a11e526d11c92f51dd_b.jpg] ![v2-1248b04de089a67c4073a44822f7b7ef\_b.jpg][v2-1248b04de089a67c4073a44822f7b7ef_b.jpg] 5.2.2 腐蚀 5.2.2.1 程序 clc clear A1=imread('xian.jpg'); A1 =im2bw(A1); figure,imshow(A1); title('原始图像'); se1=strel('disk',2); A2=imerode(A1,se1); figure,imshow(A2); title('用disk(2)腐蚀后的图像'); se2=strel('disk',4); A3=imerode(A1,se2); figure,imshow(A3); title('用disk(4)腐蚀后的图像'); se3=strel('disk',6); A4=imerode(A1,se3); figure,imshow(A4); title('用disk(6)腐蚀后的图像'); 5.2.2.2 效果 ![v2-6b7fcbe09fefc914803eff16f18eda25\_b.jpg][v2-6b7fcbe09fefc914803eff16f18eda25_b.jpg] 5.3编程实现开运算和闭运算 5.3.1开运算 5.3.1.1程序 clc clear f=imread('beitie.jpg'); f =im2bw(f); %se=strel('square',5');%方型结构元素 se=strel('disk',5');%圆盘型结构元素 imshow(f);%原图像 title('运算原始图像') fo=imopen(f,se); figure imshow(fo); title('直接开运算'); 5.3.1.2 效果 ![v2-fb0f49ed52d060b387dd556c8ec88714\_b.jpg][v2-fb0f49ed52d060b387dd556c8ec88714_b.jpg] ![v2-22f8461e288a75e9b9b482e45a264339\_b.jpg][v2-22f8461e288a75e9b9b482e45a264339_b.jpg] 5.3.2 闭运算 5.3.2.1 程序 clc clear f=imread('beitie.jpg'); f =im2bw(f); figure imshow(f);%原图像 title('原始图像'); se=strel('disk',5');%圆盘型结构元素 fc=imclose(f,se);%直接闭运算 figure,imshow(fc); title('直接闭运算'); foc=imclose(fc,se);%先开后闭运算 figure,imshow(foc); title('先开后闭运算'); fco=imopen(fc,se);%先闭后开运算 figure,imshow(fco); title('先闭后开运算'); 5.3.2.2 效果 ![v2-4bb275224c9319cfa8878611771563a9\_b.jpg][v2-4bb275224c9319cfa8878611771563a9_b.jpg] ![v2-d091f997e07b3ebf42113dcfe67e80c3\_b.jpg][v2-d091f997e07b3ebf42113dcfe67e80c3_b.jpg] ![v2-b40faa0131618fd36c6e5d4e216d9f27\_b.jpg][v2-b40faa0131618fd36c6e5d4e216d9f27_b.jpg] ![v2-d90bd47e74d300f142203677b62ff662\_b.jpg][v2-d90bd47e74d300f142203677b62ff662_b.jpg] 5.4 编程实现提取骨架和细化 5.4.1 提取骨架 5.4.1.1 程序 clc clear f=imread('guge.jpg'); f =im2bw(f); figure,imshow(f); title('骨架提取原图'); g1=bwmorph(f,'skel',1); figure,imshow(g1); title('骨架提取1次'); g2=bwmorph(f,'skel',5); figure,imshow(g2); title('骨架提取5次'); g3=bwmorph(f,'skel',20); figure,imshow(g3); title('骨架提取20次'); g4=bwmorph(f,'skel',Inf); figure,imshow(g4); title('骨架提取无穷大次'); for k=1:5 g3=g3&~endpoints(g3); end figure,imshow(g3); title('骨架提取并消除毛刺'); 5.4.1.2效果 ![v2-ac6c97acd152272f0f96bd92f276c001\_b.jpg][v2-ac6c97acd152272f0f96bd92f276c001_b.jpg] ![v2-964696afeffa95908c7acdf27a46a757\_b.jpg][v2-964696afeffa95908c7acdf27a46a757_b.jpg] ![v2-8d7270bd3ae112ea05b4c1a609310ecb\_b.jpg][v2-8d7270bd3ae112ea05b4c1a609310ecb_b.jpg] ![v2-721f04fae4f28fecf0a60067df068f2e\_b.jpg][v2-721f04fae4f28fecf0a60067df068f2e_b.jpg] ![v2-c5dd857ffce095203d9ff47d45873d5c\_b.jpg][v2-c5dd857ffce095203d9ff47d45873d5c_b.jpg] ![v2-3d3a85391a75e8b4486c69ce1a0d0912\_b.jpg][v2-3d3a85391a75e8b4486c69ce1a0d0912_b.jpg] 5.4.2 细化 5.4.2.1 程序 f=imread('zhiwen.jpg'); f =im2bw(f); f=~f; figure,imshow(f); title('指纹细化原图'); g1=bwmorph(f,'thin',1); figure,imshow(g1); title('指纹细化1次'); g2=bwmorph(f,'thin',5); figure,imshow(g2); title('指纹细化5次'); g3=bwmorph(f,'thin',Inf); figure,imshow(g3); title('指纹细化无穷大次'); 5.4.2.2 效果 ![v2-2530a6ca714b8fe7a8c846a55aeb0b13\_b.jpg][v2-2530a6ca714b8fe7a8c846a55aeb0b13_b.jpg] ![v2-d358f37e2bca28432a8fb5aacce7a6a6\_b.jpg][v2-d358f37e2bca28432a8fb5aacce7a6a6_b.jpg] ![v2-8ef89d0fc7ec185d4adba3c180abad3c\_b.jpg][v2-8ef89d0fc7ec185d4adba3c180abad3c_b.jpg] ![v2-8d1928c9b7c738a10dd5605c06ac844e\_b.jpg][v2-8d1928c9b7c738a10dd5605c06ac844e_b.jpg] [v2-1463112d719a91b0b58bafb667b2cafd_b.jpg]: /images/20220828/0cf16043a5694b37985adacb10784244.png [v2-650d7cf11ea8118ca6a582ea32f06a3d_b.jpg]: /images/20220828/ca943e96401244c3b6248b16d6de1bb9.png [v2-577dce77955a5c0e5fd6e4aa6ab411df_b.jpg]: /images/20220828/e8caf41577094a28974f020eb64db5f6.png [v2-329eb113c146334ffbcf9d2e131bb25c_b.jpg]: /images/20220828/18136bdff92c475a9828a17550d79a6d.png [v2-53e922c84e99378653707e1f7e783f7c_b.jpg]: /images/20220828/e3d2b5aa27b6448b91d6762a3181462c.png [v2-41f311a687c637ae63f8eedfc633bd90_b.jpg]: /images/20220828/d423efcc6d6945fd8d124ef7e413190e.png [v2-8f89d7d6c30cf0817d8144965c7ca3c6_b.jpg]: /images/20220828/0791ed5a4d3748e984715b79b678a24d.png [v2-b424b421e2b1a89c93ba2c1d0cff7f49_b.jpg]: /images/20220828/6f155471519c40d5adac9e6b8601af60.png [v2-1f3aacde3845db303625fae01c48ab2e_b.jpg]: /images/20220828/abf502780448481faf07f81b32df2928.png [v2-415a08def2166fd010659ed0add2daff_b.jpg]: /images/20220828/d0adcd7717be4e7abe986d3f28f7000c.png [v2-a8cdce822a491b04182b352afda53c23_b.jpg]: /images/20220828/da02b0979e4c44ae82439698c3f490e3.png [v2-9b8e66e2d8649d736f761b485db41770_b.jpg]: /images/20220828/cf006cd25a6d4a82ad917c2d529e0b09.png [v2-05210894e86206cfc12f05b2a69fda0e_b.jpg]: /images/20220828/e5f545d95cd04a829160e953fa26364d.png [v2-633f96359821f4a11e526d11c92f51dd_b.jpg]: /images/20220828/f7527adc1ac54c1ba80fc534f89172f2.png [v2-1248b04de089a67c4073a44822f7b7ef_b.jpg]: /images/20220828/38869968be2b4a35a7d9ae426e59f907.png [v2-6b7fcbe09fefc914803eff16f18eda25_b.jpg]: /images/20220828/c718af61ea994f088efe66e082fe1cd6.png [v2-fb0f49ed52d060b387dd556c8ec88714_b.jpg]: /images/20220828/a8d6c26352ff44679608fae1c6f8f3c0.png [v2-22f8461e288a75e9b9b482e45a264339_b.jpg]: /images/20220828/453d74a736694efa9ea4ed04de3d8309.png [v2-4bb275224c9319cfa8878611771563a9_b.jpg]: /images/20220828/5f5ba4aa584542bcb67efddf581561e5.png [v2-d091f997e07b3ebf42113dcfe67e80c3_b.jpg]: /images/20220828/26910a8a01454fc18f6a3e38a57df3c0.png [v2-b40faa0131618fd36c6e5d4e216d9f27_b.jpg]: /images/20220828/c142db8561644a8986753ab365a2baf4.png [v2-d90bd47e74d300f142203677b62ff662_b.jpg]: /images/20220828/f9bfbaa52fb64c4c92275a34ea23c133.png [v2-ac6c97acd152272f0f96bd92f276c001_b.jpg]: /images/20220828/c181f31099be4dfba92584dac65f0cc8.png [v2-964696afeffa95908c7acdf27a46a757_b.jpg]: /images/20220828/93032e9b8e5a4414a4268937bb07a792.png [v2-8d7270bd3ae112ea05b4c1a609310ecb_b.jpg]: /images/20220828/9195df9880464fc88dedbe65fed80a0c.png [v2-721f04fae4f28fecf0a60067df068f2e_b.jpg]: /images/20220828/325a37089f3944209334b2da152028da.png [v2-c5dd857ffce095203d9ff47d45873d5c_b.jpg]: /images/20220828/f31cac798d734ba882d5af18cb58c4a2.png [v2-3d3a85391a75e8b4486c69ce1a0d0912_b.jpg]: /images/20220828/1160c6641d0246b0b2493859cd457daf.png [v2-2530a6ca714b8fe7a8c846a55aeb0b13_b.jpg]: /images/20220828/e9ea2d19d97b4ed9815b9f40c18f3769.png [v2-d358f37e2bca28432a8fb5aacce7a6a6_b.jpg]: /images/20220828/ca970e01271046ed9a325854ba566610.png [v2-8ef89d0fc7ec185d4adba3c180abad3c_b.jpg]: /images/20220828/0f11e158969141ecb83210adc5ced8ef.png [v2-8d1928c9b7c738a10dd5605c06ac844e_b.jpg]: /images/20220828/fb48dd8f5ca645ebb41b3157736bc570.png
还没有评论,来说两句吧...