OPENCV-6 學習筆記
邊緣檢測
步驟:
- 濾波
- 增強
- 檢測
canny算子—Canny 的目標是找到一個最優的邊緣檢測算法
評價標準:
1.低錯誤率:?標識出盡可能多的實際邊緣,同時盡可能的減少噪聲產生的誤報。
2.高定位性:?標識出的邊緣要與圖像中的實際邊緣盡可能接近。
3.最小響應:?圖像中的邊緣只能標識一次,并且可能存在的圖像噪聲不應標識為邊緣。
函數:
void Canny(InputArray image,OutputArray edges, double threshold1, double threshold2, int apertureSize=3,bool L2gradient=false )
用例:
Mat src = imread("1.jpg");
Canny(src, src, 3, 9,3 );
imshow("【效果圖】", src);
sobel算子—結合了高斯平滑和微分求導,用來計算圖像灰度函數的近似梯度。在圖像的任何一點使用此算子,將會產生對應的梯度矢量或是其法矢量
函數:
void Sobel (
InputArray src,//輸入圖 OutputArray dst,//輸出圖 int ddepth,//輸出圖像的深度 int dx, //x方向梯度int dy, //y方向梯度int ksize=3, double scale=1, double delta=0, int borderType=BORDER_DEFAULT );
其小弟——Scharr函數,無內核大小的參數
void Scharr(
InputArray src, //源圖 OutputArray dst, //目標圖 int ddepth,//圖像深度 int dx,// x方向上的差分階數 int dy,//y方向上的差分階數 double scale=1,//縮放因子 double delta=0,// delta值 intborderType=BORDER_DEFAULT )// 邊界模式
Laplace算子
函數:
void Laplacian(InputArray src,OutputArray dst, int ddepth, int ksize=1, double scale=1, double delta=0, intborderType=BORDER_DEFAULT );