计算图像差分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方向,横轴检查比较好