При использовании типа данных UINT16. В чем разница изменения размера между matlab и opencv?
Глядя на приведенный выше вопрос, я обнаружил, почему результаты изменения размера между opencv и matlab отличаются.
Однако, когда тип входных данных - UINT16, результат все равно будет другим.
Я хочу знать, почему это происходит.
- Интерполяция изменения размера: бикубическая (модифицированный коэффициент opencv: 0,75 -> 0,5).
- Опция Matlab Anti-Aliasing ложная.
Matlab(2016a) пример
input = uint16(reshape(0:15,4,4).');
unit16_out = imresize(input, 0.5,'AntiAliasing', false);
[ 2, 5
10, 13]
Пример openCV(2.4.13.5)
cv::Mat in_16(4, 4, CV_16UC1);
for (int i = 0; i < 16; ++i) {
in_16.at<unsigned short>(i) = i;
}
cv::Mat out_16;
cv::resize(in_16, out_16, cv::Size(0, 0), 0.5, 0.5, CV_INTER_CUBIC);
[2, 4
11, 13]