灰度图形态学运算知识点总结 gray-scale morphology
来源:互联网 发布:公众号编辑 知乎 编辑:程序博客网 时间:2024/05/17 07:23
一般, 结构元素B是flat.
1. 腐蚀
f以正无穷大扩边, 选取B覆盖f区域中的最小值.
2. 膨胀
f以负无穷大扩边, 选取B覆盖f区域中的最大值.
3. 开运算
先腐蚀后膨胀.
开运算会抑制小size的白点(高灰度对象).
4. 闭运算
先膨胀后腐蚀.
闭运算会填充小size的黑洞(低灰度对象).
5. 腐蚀,膨胀,开,闭的一维仿真
四种运算的仿真代码:
%% 灰度图形态学运算clc;close all;clear;x=1:600;y=2*sin(0.01*x)+sin(0.02*x)+sin(0.04*x);SELen=51; % odd numberSE=ones(1,SELen);%% 腐蚀运算 y_erosion=nan(size(y));for i=1:length(y) h=max(1,i-floor(SELen/2)); t=min(length(y),i+floor(SELen/2)); y_erosion(i)=min(y(h:t));end%% 膨胀y_dilation=nan(size(y));for i=1:length(y) h=max(1,i-floor(SELen/2)); t=min(length(y),i+floor(SELen/2)); y_dilation(i)=max(y(h:t));end%% 开运算y_open=y_erosion; % 先腐蚀后膨胀for i=1:length(y_erosion) h=max(1,i-floor(SELen/2)); t=min(length(y_erosion),i+floor(SELen/2)); y_open(i)=max(y_erosion(h:t));end%% 闭运算y_close=y_dilation; % 先膨胀后腐蚀for i=1:length(y_dilation) h=max(1,i-floor(SELen/2)); t=min(length(y_dilation),i+floor(SELen/2)); y_close(i)=min(y_dilation(h:t));endfigure;plot(x,y,'r-',x,y_erosion,'g-',x,y_dilation,'b-');xlabel('点序号');ylabel('灰度值');legend('原曲线','腐蚀','膨胀');figure;plot(x,y_open,'r-',x,y_close,'b-');xlabel('点序号');ylabel('灰度值');legend('开','闭');
输出:
注意: 闭运算曲线开头处, 是一段水平线, 没有和原曲线重合. 和DIP书中不一致.
使用Matlab的内置函数验证一下:
%% 内置灰度形态运算clc;close all;clear;x=1:600;y=2*sin(0.01*x)+sin(0.02*x)+sin(0.04*x);SELen=51; % odd numberSE = strel('line', 50, 0);%% imerode imdilatey_imerode=imerode(y,SE);y_imdilate=imdilate(y,SE);%% imclose 闭运算y_imclose = imclose(y,SE);%% imopen 开运算y_imopen=imopen(y,SE);%% plotfigure;plot(x,y,'r-',x,y_imerode,'g-',x,y_imdilate,'b-');xlabel('点序号');ylabel('灰度值');legend('原曲线','imerode','imdilate');figure;plot(x,y_imopen,'r-',x,y_imclose,'b-');legend('imopen','imclose');
结果和上面的完全一致.
6. 形态学平滑
a. 对于噪声灰度高于背景灰度的情形, 先开后闭. 因为开运算会抑制小size的白点(高灰度对象). 或者连续地先开后闭运算, SE逐渐增大.
b. 对于噪声灰度低于背景灰度的情形, 先闭后开. 因为闭运算会填充小size的黑洞(低灰度对象).也可以连续操作.
7. 形态学梯度
膨胀减去腐蚀.
8. top-hat
原图减去开运算
9. bottom-hat
闭运算减去原图.
top-hat和bottom-hat 可以用于移除背景, 校正不均匀光照.
可以作为分割的前处理.
10. 粒度分析 Granulometry
统计相同形状不同size的粒子位置和数量.
a. 先做形态平滑.
b. 使用逐渐增大的SE做opening.
c. 不同尺度SE的opening结果求差分.
d. 差分曲线有较大尖峰的地方就是提取的相应size的粒子.
11. 文本分割 Textual Segment
和粒度分析类似.
a. 先用闭运算把较小的黑洞填平. SE大小要合适.
b. 使用开运算把较大黑洞连成一片. 形成了界限分明的两个区域.
c. 使用形态梯度算法提取边界.
12. 形态学重建
形态学重建运算比简单的形态学运算好的地方在于:
a. 对背景的提取较为完整干净.
b. 对前景(对象)的保留较为完整.
1 0
- 灰度图形态学运算知识点总结 gray-scale morphology
- 灰度图Gray Scale Image 或是 Gray Scale Image
- 灰度图Gray Scale Image 或是 Gray Scale Image
- 【图像处理】灰度图(Gray Scale Image)
- Gray-Scale Morphological Operations
- 【转】灰度Gray
- GRAY 灰度图
- 灰度不变性LBP( gray scale invariant) 旋转不变性LBP(rotation invariant)旋转不变等价LBP(rotation & uniform invarian )
- 灰度不变性LBP( gray scale invariant) 旋转不变性LBP(rotation invariant)旋转不变等价LBP(rotation & uniform invarian )
- Scale总结
- c#图像处理-灰度处理(gray)
- 灰度世界算法(Gray World Algorithm)
- 灰度世界算法(Gray World Algorithm)
- 灰度世界算法(Gray World Algorithm)
- 【图像处理】灰度映射(Gray Level Transformation)
- 快学Scala 第六章知识点总结
- 快学Scala 第七章知识点总结
- file知识点总结,自己学的
- iOS富文本字符串AttributedString详解
- 从网上找的固定页脚的例子在自己的项目上面却不好使。。。
- Java NIO详细介绍解析
- Android Studio 导包和依赖
- phpstorm 2016.3.2 的最新破解方法(截止2017-2-20)
- 灰度图形态学运算知识点总结 gray-scale morphology
- CursorLoader
- 如何从 iCloud 中移除文件
- Netty学习
- JavaScript之History对象(BOM)
- Deep Learning--字典的生成
- Netty学习-02(粘包 解包 FrameDecoder)
- react bug
- Java操作Excel