我在matlab中转换conv2函数获得的结果与我使用filter2d函数在opencv中获得的结果非常不同。
在opencv中的(0,0)位置获得1.1175871e-08,而在matlab中获得的结果为-0.9639
这是opencv和c ++中的代码:
cv::Mat dst;
cv::Mat kernel;
float K[5] = {-0.014, -0.45, 0, 0.4, 0.01};
cv::Mat kernel(1, 5, CV_32F, K);
float test[3][4] = {{1, 2, 3, 4},{1, 2, 3, 4},{1, 2, 3, 4}};
cv::Mat myMat(3, 4, CV_32FC1, &test);
filter2D(myMat, dst, -1 , kernel , Point( -1, -1 ), 0, BORDER_DEFAULT);
cout << dst << endl;
这是matlab中的代码:
A = [1,2,3,4; 1,2,3,4; 1,2,3,4];
k = [-0.014, -0.45, 0, 0.4, 0.01];
conv2(A, k, 'same');
我在转换中做错什么了?
谢谢。