从实例来演示整个过程,易于理解,这是一个很好的详细的例子。

http://hi.baidu.com/lwb198609_love/blog/item/6b3b1f395f8228f315cecb97.html

(1)灰度膨胀
>>t=rand(7,8);
>> t=ceil(t.*256)%t为灰度图像
t =
  209  125  191    9  168  246  158    14
  232  205  101  113   42  141  122   136
   33   37  168   98   31   36   91   200
  234  108   44  196  128   39  213   240
  162  235  181  204  246   66  150    34
   25  203    9   48   88  216  141   146
   72  246   71  126  150   66  235   121
>>figure,imshow(t,[],'InitialMagnification','fit');

结构元素:
>> se=strel('square',3)
se =
Flat STREL object containing 9 neighbors.

Neighborhood:
    1    1    1
    1    1    1
    1    1    1
灰度膨胀操作:
>> g=imdilate(t,se)
g =
  232  232  205  191  246  246  246   158
  232  232  205  191  246  246  246   200
  234  234  205  196  196  213  240   240
  235  235  235  246  246  246  240   240
  235  235  235  246  246  246  240   240
  246  246  246  246  246  246  235   235
  246  246  246  150  216  235  235   235
>>figure,imshow(g,[]);

从这个数据中可以看出:

1、胀可以使一个孤立的高亮噪音扩大化。

2、可以使用物体的一些低亮度的关键细节丢失。


结论:平坦的灰度膨胀是一个局部最大值算子。
(2)灰度腐蚀
同样采用上述示例图像t:
>> ge=imerode(t,se)
ge =
  125  101    9    9    9   42   14    14
   33   33    9    9    9   31   14    14
   33   33   37   31   31   31   36    91
   33   33   37   31   31   31   34    34
   25    9    9    9   39   39   34    34
   25    9    9    9   48   66   34    34
   25    9    9    9   48   66   66   121
>> figure,imshow(ge,[]);

分析:

从这个数据中可以看出:

1、胀可以使一个孤立的低亮噪音扩大化。

2、可以使用物体的一些高亮度的关键细节丢失。

结论:平坦的灰度腐蚀是一个局部最小值算子。
(注:①结构元素不一定规则,原点也不一定在中心②在边界处时,不存在填充的说法③膨胀与腐蚀的更多特性参书上的笔记)
(3)形态学梯度初步
“从膨胀后的图像减去腐蚀后的图像可产生一个形态学梯度,它是检测图像中局部灰度变化的一种度量。”
>> gr=imsubtract(g,ge)
gr =
  107  131  196  182  237  204  232   144
  199  199  196  182  237  215  232   186
  201  201  168  165  165  182  204   149
  202  202  198  215  215  215  206   206
  210  226  226  237  207  207  206   206
  221  237  237  237  198  180  201   201
  221  237  237  141  168  169  169   114

2.Morphological 形态学

(1)二维点对集操作,对于不同的结构用不同的算子,进行掩膜运算

(2)膨胀操作(Dilation) 对边界进行扩充

(3)腐蚀操作(Erosion)

(4)闭操作(closing)先膨胀后腐蚀,添洞补沟,合并小的物体

(5)开操作(opening)先腐蚀后膨胀,去毛刺,去掉小的物体

二、灰度图像的形态学处理

膨胀:把峰值加宽,凹槽变细,取最大的B

opening: max(min(A))

closing: min(max(A))

顶帽tophat :得到峰值 ( 原图 - 形态学开操作后的图)

底帽bottomhat:得到凹槽值,(形态学闭操作后的图 - 原图)

对灰度图进行:

1.膨胀操作结果

(1)结构元素均为正值,输出图像趋向比输入图像更亮

(2)暗的细节全部被消除了还是减少了,取决与膨胀所用的结构元素的值和形状

2.腐蚀操作

(1)结构元素为正值,输出图像会比输入图像暗

(2)输入图像中亮的细节的面积如果比结构元素的面积小,则亮的效果将被消弱

3.开操作:除去较小的明亮细节,保持整体的灰度级和较大的明亮区域不变

4.闭操作:除去较小的暗细节,而相对地保持明亮部分不受影响

灰度图像的腐蚀与膨胀相关推荐

  1. 灰度图像--形态学处理:腐蚀、膨胀、开操作、闭操作、顶帽、底帽等

    学习DIP第16天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan,欢迎大家转载,发现博客被某些论坛转载后,图像无法正常显示,无法正常表达本人观点,对此表示很不 ...

  2. 图像形态学概要-腐蚀、膨胀、开运算、闭运算、形态学梯度(形态学边缘提取)、顶帽操作、黑帽操作

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 图像形态学中两种最基本的操作就是对图形的腐蚀和膨 ...

  3. 图像二值形态学——腐蚀和膨胀的C语言实现

    数学形态学是法国和德国科学家在研究岩石结构时建立的一门科学.形态学的用途主要是获取物体拓扑和结构信息,通过物体和结构元素相互作用的某些运算,得到物体更本质的形态.在图像处理中的应用主要是:利用形态学的 ...

  4. OpenCV之imgproc 模块. 图像处理(1)图像平滑处理 腐蚀与膨胀(Eroding and Dilating) 更多形态学变换 图像金字塔 基本的阈值操作

    图像平滑处理 目标 本教程教您怎样使用各种线性滤波器对图像进行平滑处理,相关OpenCV函数如下: blur GaussianBlur medianBlur bilateralFilter 原理 No ...

  5. 什么叫做形态学图像处理_形态学腐蚀和膨胀原理和python实现

    这篇笔记为形态学膨胀(dilate)和腐蚀(erode),一种在数字图像处理中常用的基本算法. 形态学图像处理的理论根基是数学形态学(Mathematical Morphology),可以通过形态学处 ...

  6. java图像膨胀_java实现的图像腐蚀、膨胀运算 | 学步园

    这几天研究图像处理过程接触的腐蚀膨胀操作,要找个java源码参考都比较困难,所以自己写了java实现代码,并添加了阈值判断功能.可以手动修改结构元素以或者局部小改动得到不同的效果.欢迎交流指正!(PS ...

  7. matlab中使用阈值二值化,腐蚀,膨胀,反色等操作进行图像处理,去噪声,网纹、摩尔纹等

    有兴趣可以对下方的一些方法和参数进行更换,以达到更好的效果. 主要涉及到二值化,阈值,腐蚀,膨胀,反色等 clc; close all; clear; workspace; fontSize = 14 ...

  8. 腐蚀、膨胀、开运算、闭运算

    一.腐蚀.膨胀.开运算.闭运算 腐蚀:图像中的高亮部分进行膨胀 膨胀:原图中的高亮部分被腐蚀,类似于领域被蚕食 开运算:先腐蚀再膨胀,可以去掉目标外孤立的点 闭运算:先膨胀再腐蚀,可以去掉目标内的孔 ...

  9. opencv 核 腐蚀_OpenCV学习笔记(五)形态学操作:腐蚀、膨胀

    一.形态学概述 我们图像处理中指的形态学,往往表示的是数学形态学.下面一起来了解数学形态学的概念. 下面是来自百度百科对数学形态学的解释: 数学形态学是由一组形态学的代数运算子组成的,它的基本运算有4 ...

最新文章

  1. 如何从JavaScript中的给定数字中形成最小的数字
  2. 超越技术分析_超越技术面试
  3. linux vga 分辨率低,vga输出 1440x900 分辨率问题
  4. Excel 中如何找出两列数据中不重复的记录
  5. 在python中、处理的一切都是对象_Python 3+ 一切都是对象
  6. spark sql中的窗口函数
  7. C#LeetCode刷题之#661-图片平滑器( Image Smoother)
  8. libcap-ng库旨在使具有posix功能的编程比传统的libcap库容易得多
  9. python 清空文件夹_别这样直接运行Python命令,否则电脑等于“裸奔”
  10. 添加rabbitmq守护进程
  11. 不起眼的vim.转自https://blog.csdn.net/iplayvs2008/article/details/51508599
  12. HDU 5950 Recursive sequence
  13. ce能修改mc服务器吗,CE怎么修改DNF私服的装备。
  14. Ceph测试工具总结
  15. xmind8 pro 进阶班-Array老师-专题视频课程
  16. Linux设置root权限
  17. Hrbust 1162 魔女 【dp】
  18. 零基础 · 传说之下同人游戏制作教程
  19. thinkphp3.1迁移php7,ThinkPHP3.1迁移到PHP7
  20. 计算机桌面上字太宽怎么办,电脑屏幕字体怎么变大_电脑字体变大如何调-win7之家...

热门文章

  1. boost::python::pointee相关的测试程序
  2. GDCM:将PAPYRUS 3.0文件转换为dcm文件的的测试程序
  3. GDCM:生成标准SOP类的测试程序
  4. ITK:创建一个图像区域
  5. DCMTK:“内容映射资源”Content Mapping Resource中的各种CIDxxx和TIDxxx类的测试程序
  6. DCMTK:类DcmSequence和DcmPixelSequence的测试程序
  7. VTK:网格之Decimation
  8. OpenCV使用MultiTracker
  9. Qt Creator代码重构
  10. c++Hash Search哈希搜索的实现算法(附完整源码)