Я хочу написать программу matlab на C ++ и столкнулся с различными результатами изменения размера в openCV и imresize в matlab. Я читал много сообщений об этом, большинство решений заключается в изменении «сглаживания» в matlab. Однако, imresize в моей программе Matlab не может быть изменен. Вот небольшой пример.
Matlab:
a=[1,4,5.6,7;
2,5.3,4,2;
4,7,0.8,9;
2,1.3,4,5];
b=imresize(a,[2,2]);
b=[3.09116821289063 5.13890991210938
3.06820678710938 4.70171508789063]
c ++:
double a[4][4]={1,4,5.6,7,2,5.3,4,2,4,7,0.8,9,2,1.3,4,5};
Mat a1(4,4,CV_64FC1,a);
Mat b;
resize(a1,b,Size(2,2),INTER_CUBIC);
b=[3.075 4.65
3.575 4.699999999999999]
Что мне нужно, это масштабирование матрицывниз, и я не знаю, как изменить «сглаживание» при изменении размера. Эта проблема беспокоила меня в течение долгого времени, поэтому я надеюсь, что некоторые друзья, которые сталкиваются с той же проблемой, могут дать некоторые решения. Спасибо!