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

时间:2015-01-08 23:25:56

标签: c++ matlab opencv image-processing

这是我的功能

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);

1 个答案:

答案 0 :(得分:2)

对OpenCV的改变只会使插值内核成为可能。公式匹配。它不启用抗锯齿功能。此处的结果将与

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

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