实验三 数学形态学及其应用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二值形态学
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-Miss Transform:击中——击不中变换)
图5-5
图5-6
图5-7
对偶性: (验证一下)
where when
7.Morphology小结
A.通过物体(对象)和结构元素的相互作用,得到更本质的形态(shape)
(1)图像滤波
(2)平滑区域的边界
(3)将一定形状施加于区域边界
(4)描述和定义图像的各种几何参数和特征(区域数、面积、周长、连通度、颗粒度、骨架、边界)
B.形态运算是并行运算
C.细化
区域或边界变为1个象素的宽度,但它不破坏连通性
四方向细化算法:逻辑运算(可删除条件)
形态运算是否可用于细化?
(1)腐蚀:收缩(去掉边缘的点)何时结束?能否保证连通性?
(2)开:去毛刺,能否细化(去掉尺寸小于结构元素的块)
三.实验提示
Matlab中用imdilate函数实现膨胀。用法为:
Imdilate(X,SE).其中X是待处理的图像,SE是结构元素对象。
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')
imshow(BW2)
figure, imshow(BW3)
四.实验内容与要求
1.设计程序实现对图5-5,实现去除图像中的噪声。
2.设计程序,实现将图5-6转化为二值图像,并计算图中鸡块中骨头的比重。
3.设计程序,实现去除图5-7中的矩形区域外的噪声,并填充矩形区域内部了。
提示:做题是把下面的图另存为单独的图像文件进行处理。
SE = strel('square',W)
构造一个正方形的矩阵。
计算二值图像面积
bwarea
功能:
计算二进制图像对象的面积。
语法:
total = bwarea(BW)
举例
BW = imread('circles.png');
i来自百度文库show(BW);
bwarea(BW)
ans =
15799
bwmorph
例如:
bw = imread('text.png');
se = strel('line',11,90);
bw2 = imdilate(bw,se);
imshow(bw), title('Original')
figure, imshow(bw2), title('Dilated')
Matlab用imerode函数实现图像腐蚀。用法为:
功能:
提取二进制图像的轮廓。
语法:
BW2 = bwmorph(BW1,operation)
BW2 = bwmorph(BW1,operation,n)
举例
BW1 = imread('circles.png');
imshow(BW1);
BW2 = bwmorph(BW1,'remove');
BW3 = bwmorph(BW1,'skel',Inf);
实验三数学形态学及其应用
一.实验目的
1.了解二值形态学的基本运算
2.掌握基本形态学运算的实现
3.了解形态操作的应用
二.实验基本原理
腐蚀和膨胀是数学形态学最基本的变换,数学形态学的应用几乎覆盖了图像处理的所有领域,给出利用数学形态学对二值图像处理的一些运算。
膨胀就是把连接成分的边界扩大一层的处理。而收缩则是把连接成分的边界点去掉从而缩小一层的处理。
条件严格的模板匹配
模板由两部分组成。 :物体, :背景。
图5-3击不中变换示意图
性质:
(1) 时,
(2)
6.细化/粗化
(1)细化(Thin)
去掉满足匹配条件的点。
图5-4 细化示意图
系统细化 , 是 旋转的结果(90,180,270)共8种情况
适于细化的结构元素
(2)粗化(Thick)
用 时,
故要选择合适的结构元素,如 ,
将NHOOD构造成你设定的矩阵;如将NHOOD写在[1 1 1;1 1 1; 1 1 1]
SE = strel('diamond',R)
构造一个中心具有菱形结构的结构元素,R为跟中心点的距离
SE = strel('rectangle',MN)
构造一个矩形的结构元素,MN可写在[3 4],表示3行4列
Matlab用imopen函数实现图像开运算。用法为:
imopen(I,se);
I为图像源,se为结构元素
Matlab用imclosee函数实现图像闭运算。用法为:
imclose(I,se);
I为图像源,se为结构元素
结构元素的选取:
strel函数
SE = strel('arbitrary',NHOOD)
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-Miss Transform:击中——击不中变换)
图5-5
图5-6
图5-7
对偶性: (验证一下)
where when
7.Morphology小结
A.通过物体(对象)和结构元素的相互作用,得到更本质的形态(shape)
(1)图像滤波
(2)平滑区域的边界
(3)将一定形状施加于区域边界
(4)描述和定义图像的各种几何参数和特征(区域数、面积、周长、连通度、颗粒度、骨架、边界)
B.形态运算是并行运算
C.细化
区域或边界变为1个象素的宽度,但它不破坏连通性
四方向细化算法:逻辑运算(可删除条件)
形态运算是否可用于细化?
(1)腐蚀:收缩(去掉边缘的点)何时结束?能否保证连通性?
(2)开:去毛刺,能否细化(去掉尺寸小于结构元素的块)
三.实验提示
Matlab中用imdilate函数实现膨胀。用法为:
Imdilate(X,SE).其中X是待处理的图像,SE是结构元素对象。
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')
imshow(BW2)
figure, imshow(BW3)
四.实验内容与要求
1.设计程序实现对图5-5,实现去除图像中的噪声。
2.设计程序,实现将图5-6转化为二值图像,并计算图中鸡块中骨头的比重。
3.设计程序,实现去除图5-7中的矩形区域外的噪声,并填充矩形区域内部了。
提示:做题是把下面的图另存为单独的图像文件进行处理。
SE = strel('square',W)
构造一个正方形的矩阵。
计算二值图像面积
bwarea
功能:
计算二进制图像对象的面积。
语法:
total = bwarea(BW)
举例
BW = imread('circles.png');
i来自百度文库show(BW);
bwarea(BW)
ans =
15799
bwmorph
例如:
bw = imread('text.png');
se = strel('line',11,90);
bw2 = imdilate(bw,se);
imshow(bw), title('Original')
figure, imshow(bw2), title('Dilated')
Matlab用imerode函数实现图像腐蚀。用法为:
功能:
提取二进制图像的轮廓。
语法:
BW2 = bwmorph(BW1,operation)
BW2 = bwmorph(BW1,operation,n)
举例
BW1 = imread('circles.png');
imshow(BW1);
BW2 = bwmorph(BW1,'remove');
BW3 = bwmorph(BW1,'skel',Inf);
实验三数学形态学及其应用
一.实验目的
1.了解二值形态学的基本运算
2.掌握基本形态学运算的实现
3.了解形态操作的应用
二.实验基本原理
腐蚀和膨胀是数学形态学最基本的变换,数学形态学的应用几乎覆盖了图像处理的所有领域,给出利用数学形态学对二值图像处理的一些运算。
膨胀就是把连接成分的边界扩大一层的处理。而收缩则是把连接成分的边界点去掉从而缩小一层的处理。
条件严格的模板匹配
模板由两部分组成。 :物体, :背景。
图5-3击不中变换示意图
性质:
(1) 时,
(2)
6.细化/粗化
(1)细化(Thin)
去掉满足匹配条件的点。
图5-4 细化示意图
系统细化 , 是 旋转的结果(90,180,270)共8种情况
适于细化的结构元素
(2)粗化(Thick)
用 时,
故要选择合适的结构元素,如 ,
将NHOOD构造成你设定的矩阵;如将NHOOD写在[1 1 1;1 1 1; 1 1 1]
SE = strel('diamond',R)
构造一个中心具有菱形结构的结构元素,R为跟中心点的距离
SE = strel('rectangle',MN)
构造一个矩形的结构元素,MN可写在[3 4],表示3行4列
Matlab用imopen函数实现图像开运算。用法为:
imopen(I,se);
I为图像源,se为结构元素
Matlab用imclosee函数实现图像闭运算。用法为:
imclose(I,se);
I为图像源,se为结构元素
结构元素的选取:
strel函数
SE = strel('arbitrary',NHOOD)