Результат, полученный при преобразовании функции conv2 в matlab, сильно отличается от результата, получаемого в opencv с помощью функции filter2d.
В 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');
Что я делаю не так в конвертации?
Заранее спасибо.