zoukankan      html  css  js  c++  java
  • opencv形态学操作,膨胀与腐蚀

    先膨胀再腐蚀消除裂痕:

     代码:

    #include <opencv2/opencv.hpp>
    #include <iostream>
    #include <math.h>
    using namespace cv;
    using namespace std;
    
    //dst是膨胀后的图像,dst2是腐蚀后的图像
    Mat src, dst,dst2;
    //膨胀的卷积核
    int element_size = 3;
    //腐蚀的卷积核
    int element_size2 = 3;
    int max_size = 21;
    
    char* OUTPUT_WIN = "output image";
    
    //膨胀操作
    void CallBackDilate(int, void*)
    {
        int s = element_size * 2 + 1;
        Mat structureElement = getStructuringElement(MORPH_RECT, Size(s, s), Point(-1, -1));
        dilate(src, dst, structureElement, Point(-1, -1));
        imshow(OUTPUT_WIN, dst);
    }
    
    //腐蚀操作
    void CallBackErode(int, void*)
    {
        int s = element_size * 2 + 1;
        Mat structureElement = getStructuringElement(MORPH_RECT, Size(s, s), Point(-1, -1));
        erode(dst, dst2, structureElement, Point(-1, -1));
        imshow(OUTPUT_WIN, dst2);
    }
    
    
    int main()
    {
        //原图
        src = imread(".//pic//1.png",IMREAD_UNCHANGED);
        
        namedWindow("input image", CV_WINDOW_AUTOSIZE);
        imshow("input image", src);
    
        namedWindow(OUTPUT_WIN, CV_WINDOW_AUTOSIZE);
        createTrackbar("膨胀卷积核大小:", OUTPUT_WIN, &element_size, max_size, CallBackDilate);
        createTrackbar("腐蚀卷积核大小:", OUTPUT_WIN, &element_size2, max_size, CallBackErode);
        CallBackDilate(0, 0);
    
        waitKey(0);
        return 0;
    }
  • 相关阅读:
    eggjs 打印mysql日志!!!
    emqx ws转成wss
    华为 荣耀 Android 8.0 安装Google服务 使用google play
    angular + mqtt
    Angular路由参数传递
    Splay学习笔记
    FJOI2019 游记[大概是考完会解封?]
    地图游戏
    「Neerc2016」Expect to Wait
    [BZOJ5248][2018九省联考]一双木棋
  • 原文地址:https://www.cnblogs.com/xiaochi/p/12000825.html
Copyright © 2011-2022 走看看