数字图像处理实验报告实验三.docx
- 文档编号:25737138
- 上传时间:2023-06-12
- 格式:DOCX
- 页数:14
- 大小:419.24KB
数字图像处理实验报告实验三.docx
《数字图像处理实验报告实验三.docx》由会员分享,可在线阅读,更多相关《数字图像处理实验报告实验三.docx(14页珍藏版)》请在冰豆网上搜索。
数字图像处理实验报告实验三
中南大学
数字图像处理实验报告
实验三数学形态学及其应用
实验三数学形态学及其应用
一.实验目的
1.了解二值形态学的基本运算
2.掌握基本形态学运算的实现
3.了解形态操作的应用
二.实验基本原理
腐蚀和膨胀是数学形态学最基本的变换,数学形态学的应用几乎覆盖了图像处理的所有领域,给出利用数学形态学对二值图像处理的一些运算。
膨胀就是把连接成分的边界扩大一层的处理。
而收缩则是把连接成分的边界点去掉从而缩小一层的处理。
二值形态学
I(x,y),T(i,j)为0/1图像
腐蚀:
膨胀:
灰度形态学T(i,j)可取
以外的值
腐蚀:
膨胀:
1.腐蚀Erosion:
删两边
删右上
图5-1剥去一层(皮)
2.膨胀Dilation:
补两边
补左下
图5-2添上一层(漆)
3.开运算open:
4.闭close:
5.HMT(Hit-MissTransform:
击中——击不中变换)
条件严格的模板匹配
模板由两部分组成。
:
物体,
:
背景。
图5-3击不中变换示意图
性质:
(1)
时,
(2)
6.细化/粗化
(1)细化(Thin)
去掉满足匹配条件的点。
图5-4细化示意图
系统细化
,
是
旋转的结果(90°,180°,270°)共8种情况
适于细化的结构元素
(2)粗化(Thick)
用
时,
故要选择合适的结构元素,如
对偶性:
(验证一下)
where
when
7.Morphology小结
A.通过物体(对象)和结构元素的相互作用,得到更本质的形态(shape)
(1)图像滤波
(2)平滑区域的边界
(3)将一定形状施加于区域边界
(4)描述和定义图像的各种几何参数和特征(区域数、面积、周长、连通度、颗粒度、骨架、边界)
B.形态运算是并行运算
C.细化
区域或边界变为1个象素的宽度,但它不破坏连通性
四方向细化算法:
逻辑运算(可删除条件)
形态运算是否可用于细化?
(1)腐蚀:
收缩(去掉边缘的点)何时结束?
能否保证连通性?
(2)开:
去毛刺,能否细化(去掉尺寸小于结构元素的块)
三.实验提示
Matlab中用imdilate函数实现膨胀。
用法为:
Imdilate(X,SE).其中X是待处理的图像,SE是结构元素对象。
例如:
bw=imread('text.png');
se=strel('line',11,90);
bw2=imdilate(bw,se);
imshow(bw),title('Original')
figure,imshow(bw2),title('Dilated')
Matlab用imerode函数实现图像腐蚀。
用法为:
Imerode(X,SE).其中X是待处理的图像,SE是结构元素对象。
如:
I=imread('cameraman.tif');
se=strel('ball',5,5);
I2=imerode(I,se);
imshow(I),title('Original')
figure,imshow(I2),title('Eroded')
Matlab用imopen函数实现图像开运算。
用法为:
imopen(I,se);
I为图像源,se为结构元素
Matlab用imclosee函数实现图像闭运算。
用法为:
imclose(I,se);
I为图像源,se为结构元素
结构元素的选取:
strel函数
SE=strel('arbitrary',NHOOD)
将NHOOD构造成你设定的矩阵;如将NHOOD写在[111;111;111]
SE=strel('diamond',R)
构造一个中心具有菱形结构的结构元素,R为跟中心点的距离
SE=strel('rectangle',MN)
构造一个矩形的结构元素,MN可写在[34],表示3行4列
SE=strel('square',W)
构造一个正方形的矩阵。
计算二值图像面积
bwarea
功能:
计算二进制图像对象的面积。
语法:
total=bwarea(BW)
举例
BW=imread('circles.png');
imshow(BW);
bwarea(BW)
ans=
15799
bwmorph
功能:
提取二进制图像的轮廓。
语法:
BW2=bwmorph(BW1,operation)
BW2=bwmorph(BW1,operation,n)
举例
BW1=imread('circles.png');
imshow(BW1);
BW2=bwmorph(BW1,'remove');
BW3=bwmorph(BW1,'skel',Inf);
imshow(BW2)
figure,imshow(BW3)
四.实验内容与要求
1.设计程序实现对图5-5,实现去除图像中的噪声。
2.设计程序,实现将图5-6转化为二值图像,并计算图中鸡块中骨头的比重。
3.设计程序,实现去除图5-7中的矩形区域外的噪声,并填充矩形区域内部了。
提示:
做题是把下面的图另存为单独的图像文件进行处理。
图5-5
图5-6
图5-7
五、实验过程与结果
1.分别用Roberts,Sobel和拉普拉斯高斯算子对图像进行边缘检测。
比较三种算子处理的不同之处
代码:
I=imread('test_pattern.tif');
subplot(2,2,1);imshow(I),title('原图');
BW1=edge(I,'roberts');
subplot(2,2,2);imshow(BW1),title('用Roberts算子')
BW2=edge(I,'sobel');
subplot(2,2,3);imshow(BW2),title('用Sobel算子')
BW3=edge(I,'log');
subplot(2,2,4);imshow(BW2),title('用拉普拉斯高斯算子')
结果:
(3)比较
Roberts算子:
边缘定位准,但是对噪声敏感。
适用于边缘明显且噪声较少的图像分割。
Roberts边缘检测算子是一种利用局部差分算子寻找边缘的算子,Robert算子图像处理后结果边缘不是很平滑,会在图像边缘附近的区域内产生较宽的响应,边缘定位的精度不是很高。
Sobel算子:
算法的优点是计算简单,速度快。
但是由于只采用了2个方向的模板,只能检测水平和垂直方向的边缘,因此这种算法对于纹理较为复杂的图像,其边缘检测效果就不是很理想。
拉普拉斯:
对噪声敏感,会产生双边效果。
不能检测出边的方向。
通常不直接用于边的检测,只起辅助的角色,检测一个像素是在边的亮的一边还是暗的一边利用零跨越,确定边的位置。
2.设计一个检测图3-2中边缘的程序,要求结果类似图3-3,并附原理说明
代码:
I=imread('lines.png');
F=rgb2gray(I);
subplot(2,2,1);
imshow(I);
title('原始图像');
thread=130/255;
subplot(2,2,2);
imhist(F);
title('直方图');
subplot(2,2,3);
J2=im2bw(F,thread);
imshow(J2);
title('分割结果');
实验结果:
(3)原理说明:
根据图像的直方图,发现背景和目标的分割值在135左右,将此作为分割值,将图像转换为二值图像。
3.任选一种阈值法进行图像分割:
(1)选取阈值为180进行分割:
I=imread('lines.png');
F=rgb2gray(I);
subplot(2,2,1);
imshow(I);
title('原始图像');
thread=180/255;%阈值为180进行分割
subplot(2,2,2);
imhist(F);
title('直方图');
subplot(2,2,3);
J2=im2bw(F,thread);
imshow(J2);
title('分割结果');
实验结果:
将阈值调节到180,明显的看到线条的边缘变得模糊,而背景的线条被消除。
4.检测出3.3图像的线条,要求完成的结果为二值图像:
代码:
I=imread('line2.png');
F=rgb2gray(I);
subplot(2,2,1);
imshow(I);
title('原始图像');
thread=120/255;
subplot(2,2,2);
imhist(F);
title('直方图');
subplot(2,2,3);
J2=im2bw(F,thread);
imshow(J2);
title('分割结果');
实验结果:
说明:
根据直方图,分割值在120左右,去120为分割线,得到以上分割结果。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字图像 处理 实验 报告