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

    Sobel算子就是对图像求导,得到图像边缘梯度。

     

     

    #include <opencv2/opencv.hpp>
    #include <iostream>
    #include <math.h>
    
    using namespace cv;
    int main(int argc, char** argv) {
        Mat src, dst;
        int ksize = 0;
    
        src = imread("L:/5.jpg");
        if (!src.data) {
            printf("could not load image...
    ");
            return -1;
        }
    
        char INPUT_WIN[] = "input image";
        char OUTPUT_WIN[] = "sobel-demo";
        namedWindow(INPUT_WIN, CV_WINDOW_AUTOSIZE);
        namedWindow(OUTPUT_WIN, CV_WINDOW_AUTOSIZE);
        imshow(INPUT_WIN, src);
        GaussianBlur(src, dst, Size(3, 3), 0, 0);  //高斯平滑,高斯滤波
        Mat gray_src;
        cvtColor(dst, gray_src,CV_BGR2GRAY);
        imshow("gray image", gray_src);
        
        Mat xgrad, ygrad;
        Sobel(gray_src, xgrad, CV_16S, 1, 0, 3);  //X轴方向梯度
        Sobel(gray_src, ygrad, CV_16S, 0, 1, 3); //Y轴方向梯度 
        convertScaleAbs(xgrad, xgrad);          //X梯度线性变换转换输入数组元素成8位无符号整形
        convertScaleAbs(ygrad, ygrad);          //Y梯度线性变换转换输入数组元素成8位无符号整形
        imshow("xgrad", xgrad);
        imshow("ygrad", ygrad);
    
        Mat xygrad;
        addWeighted(xgrad, 0.5, ygrad, 0.5, 0, xygrad);  //X、Y梯度各占权重0.5
        imshow("Final Result",xygrad);
    
        waitKey(0);
        return 0;
    }

    结果:

    灰度图像

     X轴方向梯度:

     Y轴方向梯度:

     0.5X+0.5Y方向:

  • 相关阅读:
    varnish反向代理
    Asp.Net MVC 3.0
    反向代理(Reverse Proxy)
    Go语言开发Windows应用
    Windows下安装NodeJS和CoffeeScript方法
    数据库设计....
    发布一个开源的c++网络事件库
    非小型电子商务系统设计经验分享 Coding changes the world
    SqlServer查询计划
    cocos2dx总结(一)HelloWord
  • 原文地址:https://www.cnblogs.com/Jack-Elvis/p/11444617.html
Copyright © 2011-2022 走看看