opencv學習筆記2 邊緣檢測

2021-07-30 23:32:24 字數 2023 閱讀 2462

總結:roberts運算元檢測方法對具有陡峭的低雜訊的影象處理效果較好,但是利用

roberts

運算元提取邊緣的結果是邊緣比較粗,因此邊緣的定位不是很準確。

sobel運算元檢測方法對灰度漸變和雜訊較多的影象處理效果較好,

sobel

運算元對邊緣定位不是很準確,影象的邊緣不止乙個畫素。

prewitt運算元檢測方法對灰度漸變和雜訊較多的影象處理效果較好。但邊緣較寬,而且間斷點多。

laplacian運算元法對雜訊比較敏感,所以很少用該運算元檢測邊緣,而是用來判斷邊緣畫素視為與影象的明區還是暗區。

canny方法不容易受雜訊干擾,能夠檢測到真正的弱邊緣。優點在於,使用兩種不同的閾值分別檢測強邊緣和弱邊緣,並且當弱邊緣和強邊緣相連時,才將弱邊緣包含在輸出影象中。

用sobel,laplace檢測**:

#include "opencv2/imgproc/imgproc.hpp"    

#include "opencv2/highgui/highgui.hpp"

#include #include #includeusing namespace cv;

int main( int argc, char** argv )

//高斯模糊

gaussianblur( src, src, size(3,3), 0, 0, border_default );

//變換為灰度圖

cvtcolor( src, src_gray, cv_rgb2gray );

//建立視窗

namedwindow( window_name, cv_window_autosize );

//生成 grad_x and grad_y

mat grad_x, grad_y;

mat abs_grad_x, abs_grad_y;

// gradient x x方向梯度 1,0:x方向計算微分即導數

//scharr( src_gray, grad_x, ddepth, 1, 0, scale, delta, border_default );

sobel( src_gray, grad_x, ddepth, 1, 0, 3, scale, delta, border_default );

convertscaleabs( grad_x, abs_grad_x );

// gradient y y方向梯度 0,1:y方向計算微分即導數

//scharr( src_gray, grad_y, ddepth, 0, 1, scale, delta, border_default );

sobel( src_gray, grad_y, ddepth, 0, 1, 3, scale, delta, border_default );

convertscaleabs( grad_y, abs_grad_y ); //取絕對值

//近似總的梯度

addweighted( abs_grad_x, 0.5, abs_grad_y, 0.5, 0, grad ); //將兩幅影象疊加

cv::mat dstimage;

// 拉普拉斯變換

laplacian(src, dstimage, cv_16s, 3);

convertscaleabs( dstimage, dstimage);

cv::imshow("srcimage", src);

cv::imshow("dstimage", dstimage);

cv::imshow( window_name, grad );

waitkey(0);

return 0;

}

結果:

OpenCV學習筆記 6 邊緣檢測筆記

void roberts inputarray src,outputarray dst,int ddepth,int x 1,int y 0,int bordertype border default void conv2d inputarray src,inputarray kernel,outp...

OpenCV學習筆記(十三)邊緣檢測

邊緣檢測 邊緣檢測運算元有很多,sobel laplace prewitt canny marr hildresh。sobel運算元 sobel運算元是主要用於邊緣檢測的離散微分運算元,它結合了高斯平滑和微分求導,用於計算影象灰度函式的近似梯度。void sobel inputarray src,o...

opencv學習19 邊緣檢測

一 1.呼叫api實現邊緣檢測 1 讀入灰度影象 2 使用高斯濾波去除影象中的一些雜訊點,平滑影象 3 使用canny邊緣檢測演算法 2.cv2.gaussianblur img,size,sigmax 高斯濾波,去除影象雜訊點,使影象整體平滑 img,原影象 size,濾波視窗 高斯矩陣尺寸 通常...