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 形态学操作类型.
  • 相关阅读:
    镇中7日做题小结 day2
    镇中7日做题小结 day1
    关于开通luogu博客
    bitset用法和ch2101可达性统计
    离散化 下标与数值的深入理解
    黄题 P2038 无线网络发射器选址 被坑之痛
    最蒟蒻bug,没有之一
    http://www.laomaotao.net/?H4068
    C++设计模式——简单工厂模式
    面向对象的七个基本设计原则
  • 原文地址:https://www.cnblogs.com/fuzhuoxin/p/12111973.html
Copyright © 2011-2022 走看看