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倍耗时文章来源:https://www.toymoban.com/news/detail-651272.html
INTER_LINEAR:19.78毫秒,3倍耗时文章来源地址https://www.toymoban.com/news/detail-651272.html
到了这里,关于opencv缩放中插值算法的效率对比的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!