[學習opencv]圖像sobel、laplacian、canny邊緣檢測


三種常見的邊緣檢測算子。

#include "cv.h"
#include "highgui.h"

using namespace cv;

int main(int argc, char* argv[])
{
        Mat src = imread("misaka.jpg");
        Mat dst;
    
        //輸入圖像
        //輸出圖像
        //輸入圖像顏色通道數
        //x方向階數
        //y方向階數
        Sobel(src,dst,src.depth(),1,1);
        imwrite("sobel.jpg",dst);

        //輸入圖像
        //輸出圖像
        //輸入圖像顏色通道數
        Laplacian(src,dst,src.depth());
        imwrite("laplacian.jpg",dst);

        //輸入圖像
        //輸出圖像
        //彩色轉灰度
        cvtColor(src,src,CV_BGR2GRAY);  //canny只處理灰度圖

        //輸入圖像
        //輸出圖像
        //低閾值
        //高閾值,opencv建議是低閾值的3倍
        //內部sobel濾波器大小
        Canny(src,dst,50,150,3);    
        imwrite("canny.jpg",dst);

        imshow("dst",dst);
        waitKey();

        return 0;
}

原圖:

sobel算子:

laplacian算子:

canny算子:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM