其调用格式为:
Scharr( src_gray, grad_x, ddepth, 1, 0, 1, 0, BORDER_DEFAULT );
Scharr( src_gray, grad_y, ddepth, 0, 1, 1, 0, BORDER_DEFAULT );
等价于:
/// 求 X方向梯度
Sobel(src_gray,grad_x,ddepth, 1, 0, CV_SCHARR, scale, delta, BORDER_DEFAULT );
/// 求 Y方向梯度
Sobel(src_gray,grad_y,ddepth, 0, 1, CV_SCHARR, scale, delta, BORDER_DEFAULT );
double scale:默认1。
double delta:默认0。
int borderType:默认值为BORDER_DEFAULT。
sobel算法代码实现过程为:
/// 求 X方向梯度
Sobel( src_gray, grad_x, ddepth, 1, 0, 3, scale, delta, BORDER_DEFAULT );
/// 求 Y方向梯度
Sobel( src_gray, grad_y, ddepth, 0, 1, 3, scale, delta, BORDER_DEFAULT );
convertScaleAbs( grad_x, abs_grad_x );
convertScaleAbs( grad_y, abs_grad_y );
addWeighted( dst_x, 0.5, dst_y, 0.5, 0, dst); //一种近似的估计
来源:http://blog.csdn.net/streamchuanxi/article/details/51542141