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

                     

                    

                 

                  

                  

  • 相关阅读:
    python的内存管理
    redis 为啥要主从复制·
    django框架的ORM模型优缺点
    Pytorch学习:实现ResNet34网络
    Pytorch学习:线性回归
    Pytorch学习:CIFAR-10分类
    论文阅读笔记(六十七)【arXiv2021】:Contextual Non-Local Alignment over Full-Scale Representation for Text-Based Person Search
    论文阅读笔记(六十六)【ICCV2019】:Adversarial Representation Learning for Text-to-Image Matching
    论文阅读笔记(六十五)【ECCV2018】:Deep Cross-Modal Projection Learning for Image-Text Matching
    论文阅读笔记(六十四)【arXiv2021】:TransReID: Transformer-based Object Re-Identification
  • 原文地址:https://www.cnblogs.com/zuoyou151/p/9642835.html
Copyright © 2011-2022 走看看