这是我的功能
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
然而我仍然得到不同的结果,虽然输入是相同的,我想我正在使用resize()函数错误...你能帮忙吗?
matlab代码只是
Gr = imresize(Gr, 0,5);
答案 0 :(得分:2)
对OpenCV的改变只会使插值内核成为可能。公式匹配。它不启用抗锯齿功能。此处的结果将与
匹配imresize(A,scale,'bicubic','AntiAliasing',false)
要匹配默认值,您需要进一步修改内核,使其更广泛。