形态学处理
2016-04-09 15:03
363 查看
形态学处理利用数学中的“集合”概念对图像进行处理,按照处理对象不同,分为对二值图像处理和对灰度图像处理,处理函数大部分都是相同的,除了击中或击不中变换(仅适用于二值图像)。
二值图像
1.膨胀
D=imdilate(A,B);A为输入图像,B为结构元。膨胀是图像中的目标“生长”或“变粗”的操作。
2.腐蚀
D=imerode(A,B);A为输入图像,B为结构元。腐蚀是图像中的目标“收缩”或“变细”的操作。
3.结构元
结构元本质上和掩膜比较相似,也是0-1矩阵,不过进行的是集合运算而不是卷积运算。除了自己写结构元,也有特定的函数来产生结构元。
se=strel(shape,parameters)
shape是用来指定结构元形状的字符串,parameters值描述形状信息的参数列表。详见help.
3.开操作
先腐蚀,再膨胀 C=imopen(A,B)
开操作可以去除所有不能包含结构元的部分,平滑目标的轮廓,断开了细的连接部分。
4.闭操作
先膨胀,再腐蚀 C=imclose(A,B)
闭操作可以平滑目标的轮廓,并且连接窄的断裂并填满细长的“港湾”,填满闭结构元小的洞。
5.击中或击不中变换
结构元是一对儿结构元,A被B1腐蚀 ∩ A的补集被B2腐蚀
C=bwhitmiss(A,B1,B2)
6.bwmorph函数可以执行许多以膨胀、腐蚀为基础的形态学操作
g=bwmorph(f,opration,n)
operation是指定的所希望运算的字符串,n是重复次数,默认为1,可以是Inf.
举例:
g=bwmorph(f,'thin',n),细化没有洞的物体到最低限度相连的笔画,有洞的可以细化为环形。
g=bwmorph(f,'skel',n),骨骼化图像。
g=bwmorph(f,'thicken',n),粗化物体,并且不加入不连贯的1
g=bwmorph(f,'spur',n),去掉“毛刺”像素
7.标记连通分量
连通分量就是前景图像内部单个元素之间的关系,是通过连通得到的像素集合。连通分为4连通和8连通。
计算二值图像中所有连通分量,用函数[L,num]=bwlabel(f,conn)
f为二值图像,connb表示联通方式(4或者8);L叫做标记矩阵,不同的联通分量分别用数字1,2,3...标记。num(可选)则给出找到的连通分量的总数。
8.形态学重建
重建是一种形态学变换,包括一幅原图像G(模板),一幅标记图像F(标记),一个结构元B。其中F被包含于G。
out=imreconstruct(marker,mask)
有一些重建和其他操作结合的方法并能取得很好的效果。
(1)通过重建开操作
对图像先进行腐蚀操作,利用腐蚀的图像作为标记,利用原图像作为模板,进行重建。
(2)填充空洞
函数g=imfill(f),这个函数对于二值图像和灰度图像处理起来略有不同,参考help。
(3)清除边界物体
g=imclearborder(f,conn),可以去除比周围物体更亮且与图像边界相连的结构。
灰度形态学
除了击中或击不中变换,的其他函数都一样,知识在图像理解含义上不同,有一些组合会产生特别的效果。
1.膨胀和腐蚀
从膨胀结果中减去腐蚀的结果,可产生形态学梯度,这是图像局部灰度变化的一种度量。
2.开操作和闭操作
开操作可以去除小的亮点细节,同时保留所有的灰度并保证较大的亮区特征不受干扰。
闭操作去除比结构元校的黑暗结构。
(1)两者组合可以平滑图像并去除噪声。
(2)交替顺序滤波
就是用不断增大的一系列结构元执行开—闭操纵。
for k=2:5
se=strel('disk',k);
fasf=imclose(imopen(fasf,se),se);
end
(3)开操作可以用来补偿非均匀照明的背景(就是图像背景的亮度不一样,有暗有亮)
顶帽操作,原图像减去图像开操作结果
q=imtophat(f,NHOOD),NHOOD为0--1组成的结构元
底帽操作,原图像减去图像闭操作结果
q=imbothat(f,NHOOD),NHOOD为0--1组成的结构元
这两个操作配合可以增强图像的对比度。
g=f+imtophat(f,se)-imbothat(f,se)
3.重建
1.h极小变换,抑制小的灰度峰值
imhmin
2.重建的开操作
fe=imerode(f,se);
fobr=imreconstruct(fe,f);
3.重建的闭操作 先对图像求补,再重建的开操作,再求补. 可以接在重建开操作以后,滤波更好
fobrc=imcomplement(fobr);
fobrce=imerode(fbrc,se);
fobrcbr=imcomplement(imrconstruct(fobrce,fobrc));
4.用重建移去复杂的背景
结合腐蚀,重建的开操作,并选择合适的结构元。
二值图像
1.膨胀
D=imdilate(A,B);A为输入图像,B为结构元。膨胀是图像中的目标“生长”或“变粗”的操作。
2.腐蚀
D=imerode(A,B);A为输入图像,B为结构元。腐蚀是图像中的目标“收缩”或“变细”的操作。
3.结构元
结构元本质上和掩膜比较相似,也是0-1矩阵,不过进行的是集合运算而不是卷积运算。除了自己写结构元,也有特定的函数来产生结构元。
se=strel(shape,parameters)
shape是用来指定结构元形状的字符串,parameters值描述形状信息的参数列表。详见help.
3.开操作
先腐蚀,再膨胀 C=imopen(A,B)
开操作可以去除所有不能包含结构元的部分,平滑目标的轮廓,断开了细的连接部分。
4.闭操作
先膨胀,再腐蚀 C=imclose(A,B)
闭操作可以平滑目标的轮廓,并且连接窄的断裂并填满细长的“港湾”,填满闭结构元小的洞。
5.击中或击不中变换
结构元是一对儿结构元,A被B1腐蚀 ∩ A的补集被B2腐蚀
C=bwhitmiss(A,B1,B2)
6.bwmorph函数可以执行许多以膨胀、腐蚀为基础的形态学操作
g=bwmorph(f,opration,n)
operation是指定的所希望运算的字符串,n是重复次数,默认为1,可以是Inf.
举例:
g=bwmorph(f,'thin',n),细化没有洞的物体到最低限度相连的笔画,有洞的可以细化为环形。
g=bwmorph(f,'skel',n),骨骼化图像。
g=bwmorph(f,'thicken',n),粗化物体,并且不加入不连贯的1
g=bwmorph(f,'spur',n),去掉“毛刺”像素
7.标记连通分量
连通分量就是前景图像内部单个元素之间的关系,是通过连通得到的像素集合。连通分为4连通和8连通。
计算二值图像中所有连通分量,用函数[L,num]=bwlabel(f,conn)
f为二值图像,connb表示联通方式(4或者8);L叫做标记矩阵,不同的联通分量分别用数字1,2,3...标记。num(可选)则给出找到的连通分量的总数。
8.形态学重建
重建是一种形态学变换,包括一幅原图像G(模板),一幅标记图像F(标记),一个结构元B。其中F被包含于G。
out=imreconstruct(marker,mask)
有一些重建和其他操作结合的方法并能取得很好的效果。
(1)通过重建开操作
对图像先进行腐蚀操作,利用腐蚀的图像作为标记,利用原图像作为模板,进行重建。
(2)填充空洞
函数g=imfill(f),这个函数对于二值图像和灰度图像处理起来略有不同,参考help。
(3)清除边界物体
g=imclearborder(f,conn),可以去除比周围物体更亮且与图像边界相连的结构。
灰度形态学
除了击中或击不中变换,的其他函数都一样,知识在图像理解含义上不同,有一些组合会产生特别的效果。
1.膨胀和腐蚀
从膨胀结果中减去腐蚀的结果,可产生形态学梯度,这是图像局部灰度变化的一种度量。
2.开操作和闭操作
开操作可以去除小的亮点细节,同时保留所有的灰度并保证较大的亮区特征不受干扰。
闭操作去除比结构元校的黑暗结构。
(1)两者组合可以平滑图像并去除噪声。
(2)交替顺序滤波
就是用不断增大的一系列结构元执行开—闭操纵。
for k=2:5
se=strel('disk',k);
fasf=imclose(imopen(fasf,se),se);
end
(3)开操作可以用来补偿非均匀照明的背景(就是图像背景的亮度不一样,有暗有亮)
顶帽操作,原图像减去图像开操作结果
q=imtophat(f,NHOOD),NHOOD为0--1组成的结构元
底帽操作,原图像减去图像闭操作结果
q=imbothat(f,NHOOD),NHOOD为0--1组成的结构元
这两个操作配合可以增强图像的对比度。
g=f+imtophat(f,se)-imbothat(f,se)
3.重建
1.h极小变换,抑制小的灰度峰值
imhmin
2.重建的开操作
fe=imerode(f,se);
fobr=imreconstruct(fe,f);
3.重建的闭操作 先对图像求补,再重建的开操作,再求补. 可以接在重建开操作以后,滤波更好
fobrc=imcomplement(fobr);
fobrce=imerode(fbrc,se);
fobrcbr=imcomplement(imrconstruct(fobrce,fobrc));
4.用重建移去复杂的背景
结合腐蚀,重建的开操作,并选择合适的结构元。
相关文章推荐
- PHP GD 图像处理组件的常用函数总结
- PHP图像处理之imagecreate、imagedestroy函数介绍
- 解析在main函数之前调用函数以及对设计的作用详解
- 详解Matlab中 sort 函数用法
- jsvascript图像处理―(计算机视觉应用)图像金字塔
- Javascript图像处理思路及实现代码
- java和matlab画多边形闭合折线图示例讲解
- PHP图像处理之使用imagecolorallocate()函数设置颜色例子
- java数字图像处理基础使用imageio写图像文件示例
- C#调用Matlab生成的dll方法的详细说明
- 使用Java进行图像处理的一些基础操作
- javascript图像处理―边缘梯度计算函数
- Javascript图像处理―阈值函数实例应用
- Javascript图像处理―虚拟边缘介绍及使用方法
- PHP图像处理类库及演示分享
- php图像处理函数大全(推荐收藏)
- 简述Matlab中size()函数的用法
- Javascript图像处理―图像形态学(膨胀与腐蚀)
- Javascript图像处理―平滑处理实现原理
- 从java中调用matlab详细介绍