zoukankan      html  css  js  c++  java
  • opencv学习笔记4 边缘检测

    一。边缘检测的一般步骤

    1.滤波 2.增强 3.检测

    二。canny

    void Canny(InputArray image,OutputArray edges, double threshold1, double threshold2, int apertureSize=3,bool L2gradient=false )

     1     Mat src = imread("E:/test.jpg");
     2     Mat blur,gray,edge;
     3     Mat dst(src.rows, src.cols, src.type());
     4     cvtColor(src, gray, CV_BGR2GRAY); //转换为灰度图
     5     GaussianBlur(gray, blur, Size(3, 3), 0, 0); //降噪
     6     Canny(blur, edge, 200, 100); //边缘检测
     7     dst = Scalar::all(0);
     8     src.copyTo(dst, edge); //edge作掩码将src拷贝到dst
     9     imshow("src", src);
    10     imshow("canny detect", dst);
    11     waitKey();
    12     return 0;

    三。sobel

    void Sobel (
    InputArray src,//输入图
    OutputArray dst,//输出图
    int ddepth,//输出图像的深度
    int dx,
    int dy,
    int ksize=3,
    double scale=1,
    double delta=0,
    int borderType=BORDER_DEFAULT );

    1     Mat grad_x, grad_y;
    2     Mat src = imread("E:/test.jpg",0);
    3     Sobel(src, grad_x, src.depth(), 1, 0,3); //x方向梯度
    4     Sobel(src, grad_y, src.depth(), 0, 1, 3);//y方向梯度
    5     imshow("grad_x", grad_x);
    6     imshow("grad_y", grad_y);

    四。Laplacian

    void Laplacian(InputArray src,OutputArray dst, int ddepth, int ksize=1, double scale=1, double delta=0, intborderType=BORDER_DEFAULT );

    1     Mat src = imread("E:/test.jpg");
    2     Mat dst;
    3     Laplacian(src, dst, src.depth(),3,1,0 );
    4     imshow("src", src);
    5     imshow("dst", dst);
    6     waitKey();

     

    五。scharr滤波器

    void Scharr(
    InputArray src, //源图
    OutputArray dst, //目标图
    int ddepth,//图像深度
    int dx,// x方向上的差分阶数
    int dy,//y方向上的差分阶数
    double scale=1,//缩放因子
    double delta=0,// delta值
    intborderType=BORDER_DEFAULT )// 边界模式

    1 Mat grad_x, grad_y;
    2     Mat src = imread("E:/test.jpg", 0);
    3     Scharr(src, grad_x, src.depth(), 1, 0, 1, 0, BORDER_DEFAULT); //和sobel类似
    4     Scharr(src, grad_y, src.depth(), 0 , 1, 1, 0, BORDER_DEFAULT); 
    5     imshow("grad_x", grad_x);
    6     imshow("grad_y", grad_y);

  • 相关阅读:
    160309_Qt Essentials
    160309_Qt Reference Documentation
    160308_Signals & Slots
    160308_Helloworld_Gui Application
    网络爬虫(14)-动态页面爬取
    数据分析(6)-Pandas日期数据处理
    mysql基础(2)-excel功能在excel中如何实现?
    数据分析(5)-数据可视化常用图表类型和使用场景
    财经数据(6)-Python多进程爬虫东方财富个股盘口异动数据
    财经数据(5)-开盘啦股票标签数据爬虫
  • 原文地址:https://www.cnblogs.com/sclu/p/11508206.html
Copyright © 2011-2022 走看看