zoukankan      html  css  js  c++  java
  • 膨胀,腐蚀,开运算和闭运算 分类: 图像处理 2014-09-22 21:02 120人阅读 评论(0) 收藏

    膨胀,腐蚀,开运算和闭运算是图像处理中形态学的一部分,其数学基础是集合论。

    1. 腐蚀是一种消除边界点,使边界向内部收缩的过程。

    可以用来消除小且无意义的物体。
    腐蚀的算法:
    用3x3的结构元素,扫描图像的每一个像素
    用结构元素与其覆盖的二值图像做“与”操作
    如果都为1,结果图像的该像素为1。否则为0。
    结果:使二值图像减小一圈

    2. 膨胀是将与物体接触的所有背景点合并到该物体中,使边界向外部扩张的过程。

    可以用来填补物体中的空洞。
    膨胀的算法:
    用3x3的结构元素,扫描图像的每一个像素
    用结构元素与其覆盖的二值图像做“与”操作
    如果都为0,结果图像的该像素为0。否则为1
    结果:使二值图像扩大一圈


    3. 先腐蚀后膨胀的过程称为开运算。

    用来消除小物体、在纤细点处分离物体、平滑较大物体的边界的同时并不明显改变其面积。


    4. 先膨胀后腐蚀的过程称为闭运算。

    用来填充物体内细小空洞、连接邻近物体、平滑其边界的同时并不明显改变其面积。

    将对二值图处理的思想延伸到灰度图

              

    规                      则

    腐蚀  超出图像边界的像素值定义为该数据类型允许的最大值,对于二进制图像,这些像素值设置为1;对于灰度图像,unit8类型的最小值也为255。
    膨胀  超出图像边界的像素值定义为该数据类型允许的最小值,对于二进制图像,这些像素值设置为0;对于灰度图像,unit8类型的最小值也为0。

    其实讲的明白点就是在膨胀操作时,输出像素值是输入图像相应像素邻域内所有像素的最大值。在二进制图像中,如果任何像素值为1,那么对应的输出像素值为1。而在腐蚀操作中,输出像素值是输入图像相应像素邻域内所有像素的最小值。在二进制图像中,如果任何一个像素值为0,那么对应的输出像素值为0。

    核心代码如下

            Img_fushi(i,j)=min(min(Img_fushi(i-1:i+1,j-1:j+1)));
            Img_pengzhang(i,j)=max(max(Img_pengzhang(i-1:i+1,j-1:j+1)));


     


    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    类型“System.Windows.Markup.IUriContext”在未被引用的程序集中定义 解决办法
    c# 根据文件流查看文件真实格式
    WPF ListBoxItem 使用Command命令添加双击事件
    MVVM 在使用 ItemsSource 之前,项集合必须为空
    WPF 自定义TextBox,可控制键盘输入内容
    百万数据如何在前端快速流畅显示?
    NodeJS npm 包装包失败的解决方案
    node.js express 4.x 安装指南(Express不是内部或外部命令解决方案)
    IIS8 不能在此路径中使用此配置节。如果在父级别上锁定了该节
    Npoi操作excel
  • 原文地址:https://www.cnblogs.com/learnordie/p/4657014.html
Copyright © 2011-2022 走看看