zoukankan      html  css  js  c++  java
  • 图像形态学

    • 膨胀

      跟卷积操作类似,假设有图像A和结构元素B,结构元素B在A上面移动,其中B定义其中心为锚点,计算B覆盖下A的最大像素值用来替换锚点的像素,其中B作为结构体可以是任意形状,首先明确灰度图像(0~255)对应(黑~白);膨胀结果如下:

    •  腐蚀

       腐蚀跟膨胀操作的过程类似,唯一不同的是以最小值替换锚点重叠下图像的像素值

    •  开操作

      开操作为先腐蚀后膨胀可以去掉小的对象,单纯去掉小点噪声的话多进行几次腐蚀迭代也可以,但是这样会使像素值小的区域变小,与原图不匹配,再膨胀回来是为了保持目标图像大小不变。

     

    • 闭操作

      闭操作为先膨胀后腐蚀可以去掉区域内部的噪声小对象,可以填充小的洞,单纯去掉小点噪声的话多进行几次膨胀迭代也可以,但是这样会使像素值大的区域变大,与原图不匹配,再腐蚀回来是为了保持目标图像大小不变。

    • 形态学梯度(基本梯度还包括内部梯度、方向梯度)

      形态学梯度是膨胀减去腐蚀

    • 顶帽

      是原图像与开操作之间的差值图像

    • 黑帽

      是原图像与闭操作之间的差值图像

    创建用于形态学操作的结构元素:Mat struct = getStructuringElement(MORPH_RECT, Size(3,3), Point(-1,-1)); 
    //Point(-1,-1)默认自动寻找区域中心,参数一有MORPH_RECT MORPH_CROSS MORPH_ELLIPSE等几种区域形状。
    
    struct = getStructuringElement(MORPH_RECT, Size(image.cols/20,1), Point(-1,-1));
    //就是一条水平直线去扫描,可以取出图片中的横线。
    
    膨胀函数dilate(in1,out1,structa, Point(-1, -1),5);
    //第三个参数为结构操作元素,5为迭代次数,即膨胀几次;
    
    腐蚀函数:erode(in2, out2, structa, Point(-1, -1), 5);
    //参数意义同上。
    
    图像形态学运算:morphologyEx(in2, out2, CV_MOP_CLOSE, structa);
    // CV_MOP_CLOSE为指定操作类型,structa同35为结构操作元素。
    //有CV_MOP_OPEN/ CV_MOP_CLOSE/ CV_MOP_GRADIENT为形态学梯度 / CV_MOP_TOPHAT/ CV_MOP_BLACKHAT 形态学操作类型.
  • 相关阅读:
    手机精准定位,看好你的男朋友
    顶级分享,三端看片的日子来了
    这样的声音谁受的了呀
    白嫖vip电台,资源随意听
    老板止步!这里全是小姐姐
    粉丝福利。无视墙 来看看全世界的网站吧
    利用自己的服务器搭建专属私有云盘&博客园搬家
    Photoshop 2020 安装教程
    TensorFlow基础——常用函数(一)
    Scala基本语法入门
  • 原文地址:https://www.cnblogs.com/fuzhuoxin/p/12111973.html
Copyright © 2011-2022 走看看