opencv缩放中插值算法的效率对比

OpenCV中,resize 函数是用来对图片进行缩放的函数,其中含有参数dsize(输出图像尺寸)、fx(fy)(宽度高度的缩放因子)、interpolation(插值算法)等。其中,interpolation 表示图像缩放时使用的插值方法,它是一个枚举类型,可以取得以下常量:

- INTER_NEAREST:
 最邻近插值法,这是最快的算法,但是会造成图像的马赛克
- INTER_LINEAR:
 双线性插值法,这是默认值,通常这种方法能够获得一个较好的效果,它的速度也还可以接受
- INTER_CUBIC:
 双三次插值法,这种方法的效果要比双线性插值法好一些,但速度会比较慢
- INTER_AREA:
 像素区域重采样,这种方法提供了一种基本的替代方法,可以用来执行图像的高斯模糊和其他卷积操作

- INTER_LANCZOS4:
其主要特点是将采样点放在了更大的网格中,然后用多项式拟合其上的插值函数,从而获得更高精度的处理效果。Lanczos插值法可以生成质量更高的图像,但它的计算时间要比其他方法长

对于以上不通的插值算法,使用1000X1000以上的图片循环做1000测试,以release的方式编译程序进行运行(不是调试模式),得到它们的效率差异:

INTER_NEAREST:5.75毫秒,1倍耗时

INTER_AREA :9699.12毫秒,1687倍耗时

INTER_CUBIC:306.98毫秒,53倍耗时

INTER_LINEAR:19.78毫秒,3倍耗时

你可能感兴趣的:(opencv,算法,计算机视觉)