今天调试程序,发现c++ opencv resize调用时存在的一个坑,赶紧填起来。
从resize定义来看:
CV_EXPORTS_W void resize( InputArray src, OutputArray dst, Size dsize, double fx = 0, double fy = 0, int interpolation = INTER_LINEAR );
除了前面三个参数是必须的,后面三个都可以空着。
但是再真正使用时就遇到了坑,赶紧填起来给后面的人指路。
cv::resize(m_mask_res, mask_res_resized, cv::Size(width, height), cv::INTER_NEAREST);
上面的这种调用虽然可以得到结果,但是结果不是你期待的结果。
cv::resize(m_mask_res, mask_res_resized, cv::Size(width, height), 0, 0, cv::INTER_NEAREST);
添加上省略掉的参数就可以得到正确的结果了。