zoukankan      html  css  js  c++  java
  • 2.2腐蚀与膨胀

    形态学操作 

                  基于形状的一系列图像处理操作,通过将结构元素作用于输入图像来产生输出图像。

                  最基本的两种形态学操作:腐蚀(Erosion)与膨胀(Dilation)

                  应用:消除噪声

                             分割独立的图像元素,以连接相邻的元素

                             寻找图像中明显的极大值区域与极小值区域

                  以以下图片为例:

    膨胀

               将此图像A与任意形状的内核B(通常为正方形或圆形)进行卷积

               内核B有一个可定义的锚点,通常定义为内核中心点。

               进行膨胀操作时,将内核B划过图像,将内核B覆盖区域的最大像素提取,并代替锚点位置

              的像素。这一操作将会导致图像中的亮区开始扩展

     腐蚀

                 提取内核覆盖下像素的最小值

                 将内核B划过图像,将内核B覆盖区域的最小像素值提取,并代替锚点位置的像素。

      

       函数

       erode(src,dst,element)

       src:输入图像

       dst:输出图像

       element:输入操作的内核,如果不指定默认为3*3的内核,否则,需要明确指定它的形状。可以使用函数

                     getStructureElement(erosion_type,

                                                      Size(2*erosion_size+1,2*erosion_size+1),

                                                      Point(erosion_size,erosion_size))

                       内核可以选择以下三种之一:矩形 MORPH_RECT

                                                                      交叉形MORPH_CROSS

                                                                      椭圆形MORPH_ELLIPSE

    #include <opencv2/opencv.hpp>
    #include <iostream>
    #include<windows.h>
    using namespace std;
    using namespace cv;
    
    int main()
    {
        Mat src = imread("D:\Pic\1.jpg");  //存放自己图像的路径 
        Mat erosion_dst, dilation_dst;
        Mat element = getStructuringElement(MORPH_RECT, Size(3, 3), Point(1, 1));
        erode(src, erosion_dst, element);
        dilate(src, dilation_dst, element);
        namedWindow("Image", CV_WINDOW_AUTOSIZE);
        namedWindow("Erosion Demo", CV_WINDOW_AUTOSIZE);
        namedWindow("Dilation Demo", CV_WINDOW_AUTOSIZE);
        imshow("Image", src);
        imshow("Erosion Demo", erosion_dst);
        imshow("Dilation Demo", dilation_dst);
        waitKey(0);
        system("pause");
        return 0;
    }
    View Code

                     

                    

                 

                  

                  

  • 相关阅读:
    SSM项目使用GoEasy 实现web消息推送服务
    Spring中RedirectAttributes的用法
    Mybatis传递多个参数
    Mysql异常之——Packet for query is too large (10240 > 1024). You can change this value
    记自己在mybatis中设置jdbcType的一个坑
    Linux中各个目录作用
    Linux启动/停止/重启Mysql数据库
    ssm项目跨域访问
    Mybatis异常之——NoSuchMethodException
    Tomcat异常之——启动报错Failed to start component
  • 原文地址:https://www.cnblogs.com/zuoyou151/p/9642835.html
Copyright © 2011-2022 走看看