计算图像差分Scharr()函数
void Scharr(
inputArray src,
outputArray dst,
int deepth,
int dx,
int dy,
double scale=1,
double delta=0,
int borderType=BORDER_DEFAULT
)
Scharr边缘检测
x和y方向的图像差分
下面是代码:
#include <opencv2/highgui/highgui.hpp>#include <opencv2/imgproc/imgproc.hpp>using namespace cv;int main(){Mat src = imread("1.jpg");namedWindow("原图");imshow("原图", src);//x方向Mat grad_x;Scharr(src, grad_x, CV_8U, 1, 0, 1, 0, BORDER_DEFAULT);namedWindow("x方向");imshow("x方向", grad_x);//y方向Mat grad_y;Scharr(src, grad_y, CV_8U, 0, 1, 1, 0, BORDER_DEFAULT);namedWindow("y方向");imshow("y方向", grad_y);//x+y方向Mat dst;addWeighted(grad_x, 0.5, grad_y, 0.5, 0, dst);namedWindow("x+y");imshow("x+y", dst);waitKey();return 0;}
运行结果:
可见x方向,竖直检查比较好
y方向,横轴检查比较好