一个160*120的单像素棋盘格图src,如下
[255,0,255,0,255,0.......]
[0,255,0,255,0,255.......]
......
使用OpenCV的resize按最近邻插值的方式放大32倍,生成棋盘格图:
cv::resize(src, dst, cv::Size(160 * 32, 120 * 32), INTER_NEAREST);
得到的结果却是这样的:
分析了很久又做了上述实验,发现这个函数对于函数的缺省参数也进行填写时才能得到正确的结果。
cv::resize(src, dst, cv::Size(160 * 32, 120 * 32), 0.0, 0.0, INTER_NEAREST);
如下得到了最近邻插值的正确答案。
有网友拿大图比较各种插值缩放的效果,可能本身已经出错了,但是因图比较大也不容易看出来差异,这里专门用一个棋盘格图做个比较,效果明显。
大家遇到此坑及时绕开。