【发布时间】:2015-11-20 12:59:03
【问题描述】:
这是我的水平梯度结果。左边是opencv结果,另一个是matlab结果
我正在尝试做 H =[1,-1] 和 V=[1;-1] 的水平和垂直渐变
Mat H_gradient,G_Filter1,kernel,V_gradient;
Mat kernelH(1, 2, CV_32F);
kernelH.at<float>(0,0) = 1.0f;
kernelH.at<float>(0,1) = -1.0f;
Mat kernelV(2, 1, CV_32F);
kernelV.at<float>(0,0) = 1.0f;
kernelV.at<float>(1,0) = -1.0f;
cvtColor( image, image, CV_RGB2GRAY );
filter2D( image, H_gradient, -1 ,kernelH , Point( -1, -1 ), 0, BORDER_DEFAULT );
filter2D( image, V_gradient, -1 ,kernelV , Point( -1, -1 ), 0, BORDER_DEFAULT );
但是还是和我的matlab代码结果不匹配。不知道为什么?
我的渐变 matlab 代码
image=double(image);
% horizontal and vertical gradient
H=[1 -1];
V=[1;-1];
H_Gradient=conv2(image,H,'same');
V_Gradient=conv2(image,V,'same');
【问题讨论】:
-
你能告诉我们示例图像的不同之处吗?
-
我添加左图是opencv结果@ypnos
标签: c++ opencv gradient convolution