преобразование conv2 Matlab в filter2d opencv в c ++ - PullRequest
0 голосов
/ 13 октября 2018

Результат, полученный при преобразовании функции 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');

Что я делаю не так в конвертации?

Заранее спасибо.

...