MATLAB图像分割和形态学处理
一、实验目的
- 掌握图像分割的基本方法。
- 掌握形态学处理的基本方法。
- 学会使用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 效果
分析:随着阈值的减小,所检测出的点越来越多
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 处理效果
分析:-45度方向上的直线,经过处理后效果明显,其他方向上的线比较模糊。
5.3 阈值分割方法3——边缘检测
5.3.1程序
clc