热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

灰度图像的腐蚀与膨胀

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

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

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

(1)灰度膨胀
>>t=rand(7,8);
>> t=ceil(t.*256)%t为灰度图像
t =
  209  125  191     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      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
灰度膨胀操作:
>> 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            42   14    14
   33   33            31   14    14
   33   33   37   31   31   31   36    91
   33   33   37   31   31   31   34    34
   25            39   39   34    34
   25            48   66   34    34
   25            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.闭操作:除去较小的暗细节,而相对地保持明亮部分不受影响


推荐阅读
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • Monkey《大话移动——Android与iOS应用测试指南》的预购信息发布啦!
    Monkey《大话移动——Android与iOS应用测试指南》的预购信息已经发布,可以在京东和当当网进行预购。感谢几位大牛给出的书评,并呼吁大家的支持。明天京东的链接也将发布。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
author-avatar
当王子爱上灰姑娘
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有