zoukankan      html  css  js  c++  java
  • 用腐蚀及膨胀来进行边界提取

    腐蚀:高亮部分减少

    膨胀:高亮部分增加

    边界提取 = 膨胀-腐蚀

    #include "opencv2/core/core.hpp"
    #include "opencv2/highgui/highgui.hpp"
    #include "opencv2/imgproc/imgproc.hpp"
    
    using namespace cv;
    
    
    int main(int argc, char *argv[])
    {
        Mat image, imageGray, imageDilate, imageErode, imageBorder;
        image = imread("C:\vs_test\Project7\x64\Debug\1.png");
        resize(image, image, Size(400, 400));
        cvtColor(image, imageGray, CV_RGB2GRAY);
    
        // 这里矩形MORPH_RECT=0, 十字形MORPH_CROSS=1, 椭圆MORPH_ELLIPSE=2 
        //getStructuringElement是获得卷积核(形状,大小,核的中心位置默认位于形状中心)
        Mat element = getStructuringElement(1, Size(3, 3), Point(-1, -1));
        dilate(imageGray, imageDilate, element, Point(-1, -1));//膨胀
        erode(imageGray, imageErode, element, Point(-1, -1));  //腐蚀
        imageBorder = imageDilate - imageErode;                //边界提取
        imshow("Source image", image);
        imshow("Dilate", imageDilate);
        imshow("Erode", imageErode);
        imshow("Border", imageBorder);
        waitKey();
    }

    运行结果:

  • 相关阅读:
    ovs QOS
    OpenvSwitch端口镜像
    MyCat入门指南
    Mycat跨分片Join
    MyCAT 命令行监控
    MyCat的分片规则
    FreeMarker初探--介绍
    FreeMarker初探--安装FreeMarker
    linux 安装配置zookeeper
    Maven 环境搭建及相应的配置
  • 原文地址:https://www.cnblogs.com/roscangjie/p/11049986.html
Copyright © 2011-2022 走看看