您的位置:首页 > 其它

计算梯度幅值与方向

2016-11-18 21:20 316 查看
Mat magX = Mat(src.rows, src.cols, CV_32F);
Mat magY = Mat(src.rows, src.cols, CV_32F);
Sobel(image, magX, CV_32F, 1, 0, 3);
Sobel(image, magY, CV_32F, 0, 1, 3);
// 计算斜率
Mat slopes = Mat(image.rows, image.cols, CV_32F);
divide(magY, magX, slopes);
// 计算每个点的梯度
Mat sum = Mat(image.rows, image.cols, CV_64F);
Mat prodX = Mat(image.rows, image.cols, CV_64F);
Mat prodY = Mat(image.rows, image.cols, CV_64F);
multiply(magX, magX, prodX);
multiply(magY, magY, prodY);
sum = prodX + prodY;
sqrt(sum, sum);

转载:http://blog.csdn.net/zhuwei1988
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: