OpenCV 图像调整大小与 matlab 的比较

OpenCV image resize comparison to matlab

这是我的函数

int* Utilities::MatlabImresize(int* channel,int width, int height, double scale)
{
    cv::Mat src(width, height, CV_32F);
    for (int i = 0; i < width * height; ++i)
    {
        src.at<float>(i) = channel[i];      
    }
    cv::Mat dst;
    cv::resize(src, dst, cv::Size(), 0.5, 0.5,cv::INTER_CUBIC);
    ofstream myfile;
    myfile.open("C:\Users\gdarmon\Desktop\OpenCV_CR.txt");
    myfile << dst;
    myfile.close();

    return NULL;
}

正如我在上一个问题中所讨论的 imresize - trying to understand the bicubic interpolation 我用 -0.5f 而不是 -0.75f

重新编译了 openCV

尽管输入相同,但我仍然得到不同的结果,我想我使用的 resize() 函数有误...你能帮忙吗?

matlab代码就是

Gr = imresize(Gr, 0,5);

对 OpenCV 的更改只会使插值内核的公式匹配。它不启用抗锯齿。此处的结果将匹配

imresize(A,scale,'bicubic','AntiAliasing',false)

要匹配默认值,您需要进一步修改内核,使其更广泛。