zoukankan      html  css  js  c++  java
  • OpenCV Sobel算子

    卷积应用-图像边缘提取

    卷积应用-图像边缘提取
        边缘是什么 – 是像素值发生跃迁的地方,是图像的显著特征之一,
        在图像特征提取、对象检测、模式识别等方面都有重要的作用。
        如何捕捉/提取边缘 – 对图像求它的一阶导数
         - delta =  f(x) – f(x-1), delta越大,说明像素在X方向变化越大,边缘信号越强
    Sobel算子
        是离散微分算子(discrete differentiation operator),
        用来计算图像灰度的近似梯度Soble算子功能集合高斯平滑和微分求导
        又被称为一阶微分算子,求导算子,在水平和垂直两个方向上求导,得到图像X方法与Y方向梯度图像

     1 cv::Sobel (
     2     InputArray Src         // 输入图像
     3     OutputArray dst        // 输出图像,大小与输入图像一致
     4     int depth              // 输出图像深度. 
     5     Int dx                 // X方向,几阶导数
     6     int dy                 // Y方向,几阶导数. 
     7     int ksize              // SOBEL算子kernel大小,必须是1、3、5、7、
     8     double scale  = 1
     9     double delta = 0
    10     int borderType = BORDER_DEFAULT
    11 )
     1 cv::Scharr (
     2     InputArray Src        // 输入图像
     3     OutputArray dst       // 输出图像,大小与输入图像一致
     4     int depth             // 输出图像深度
     5     Int dx.               // X方向,几阶导数
     6     int dy                // Y方向,几阶导数
     7     double scale  = 1
     8     double delta = 0
     9     int borderType = BORDER_DEFAULT
    10 )
    1 其他API
    2 GaussianBlur( src, dst, Size(3,3), 0, 0, BORDER_DEFAULT );
    3 cvtColor( src,  gray, COLOR_RGB2GRAY );
    4 addWeighted( A, 0.5,B, 0.5, 0, AB);
    5 convertScaleAbs(A, B)// 计算图像A的像素绝对值,输出到图像B
     1 int main(int argc, char** argv) {
     2     Mat src, dst;
     3     src = imread(STRPAHT2);
     4     if (!src.data) {
     5         printf("could not load image...
    ");
     6         return -1;
     7     }
     8     
     9     Mat gray_src;
    10     GaussianBlur(src, dst, Size(3, 3), 0, 0, BORDER_DEFAULT);
    11     cvtColor(dst, gray_src, CV_BGR2GRAY);
    12     //imshow("gray image", gray_src);
    13         
    14     Mat xgrad, ygrad;
    15 
    16     //Scharr(gray_src, xgrad, CV_16S, 1, 0, 3);
    17     //Scharr(gray_src, ygrad, CV_16S, 0, 1, 3);
    18     //convertScaleAbs(xgrad, xgrad);
    19     //convertScaleAbs(ygrad, ygrad);
    20     //imshow("xgrad", xgrad);
    21     //imshow("ygrad", ygrad);
    22 
    23     Sobel(gray_src, xgrad, CV_16S, 1, 0, 3);
    24     Sobel(gray_src, ygrad, CV_16S, 0, 1, 3);
    25     convertScaleAbs(xgrad, xgrad);
    26     convertScaleAbs(ygrad, ygrad);
    27     imshow("xgrad", xgrad);
    28     imshow("ygrad", ygrad);
    29 
    30     waitKey(0);
    31     return 0;
    32 }
  • 相关阅读:
    python装饰器
    python名称空间和作用域
    python函数-函数对象
    python函数-参数
    python文件高级操作
    python基本文件操作
    python2和3的区别
    OSI-传输层
    Android屏幕density, dip等相关概念总结
    架构设计:系统间通信(20)——MQ:消息协议(下)
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/12821525.html
Copyright © 2011-2022 走看看