zoukankan      html  css  js  c++  java
  • OpenCV-C++ Laplance算子

    拉普拉斯理论说明

    待补充;

    Laplacian API使用介绍

    计算图像的拉普拉斯算子,用于图像边缘检测;

    OpenCV中Laplacian的使用方式:

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

    该函数通过使用Sobel算子计算出的二阶x,y的导数相加来计算源图像的拉普拉斯算子:

    [dst = Delta src = dfrac{partial^2 src}{partial x^2} + dfrac{partial^2src}{partial y^2} ]

    如果ksize=1,则该函数计算拉普拉斯算子的方式是利用下面的核进行计算:

    其中:

    • src表示源图像;
    • dst表示输出;
    • ddepth表示输出位数,需要比源图像大;
    • ksize表示核大小;
    • scale表示缩放系数;
    • delta表示偏移量;
    • borderType表示对图像边界如何处理;

    拉普拉斯算子实现图像边缘检测

    类似于使用Sobel进行图像边缘检测,包含以下步骤:

    • 高斯模糊
    • 转灰度图
    • 拉普拉斯-计算二阶导数
    • 取绝对值convertScaleAbs()
    • 显示结果

    结果如下:

    完成程序如下:

    #include <iostream>
    #include <opencv2/opencv.hpp>
    
    using namespace std;
    using namespace cv;
    
    /**
     * 边缘处理
    */
    
    int main(){
        // 读取图像
        Mat src = imread("/home/chen/dataset/lena.jpg");
        if (src.empty()){
            cout << "could not load image." << endl;
            return -1;
        }
        namedWindow("src", WINDOW_AUTOSIZE);
        imshow("src", src); 
    
        // 1. 高斯模糊
        Mat srcBlur;
        GaussianBlur(src, srcBlur, Size(3, 3), 0, 0);
    
        // 2. 转灰度图
        Mat srcGray;
        cvtColor(srcBlur, srcGray, COLOR_BGR2GRAY);
        cout << srcGray.type() << endl;
    
        // 3. 拉普拉斯-计算二阶导数
        Mat srcGrad;
        Laplacian(srcGray, srcGrad, CV_16S, 3);
    
        Mat dst;
        convertScaleAbs(srcGrad, dst);
        threshold(dst, dst, 0, 244, THRESH_OTSU);
    
        namedWindow("dst", WINDOW_AUTOSIZE);
        imshow("dst", dst);   
        waitKey(0); 
        return 0;
    }
    
  • 相关阅读:
    javascript金额千分位的实现
    html中仿GroupBox效果与路径问题
    javascript获取表格的高度
    分布式系统的架构思路
    sharepoint2010 Reporting Services 集成注意
    Ext.MessageBox.updateProgress
    认识RFID
    Extjs 下拉ComboBox分页,图片,多行显示
    MVCFckEditor一些小问题
    MVCFckEditor
  • 原文地址:https://www.cnblogs.com/chenzhen0530/p/14679115.html
Copyright © 2011-2022 走看看