当前位置: 首页 > news >正文

OpenCV resize 的各插值方式的区别与用途

一、resize 函数中 interpolation 参数的区别和用途

cv2.resize 函数中的 interpolation 参数用于指定图像缩放时使用的插值方法。不同的插值方法会影响缩放后图像的质量和处理速度。以下是cv2.INTER_AREAcv2.INTER_CUBICcv2.INTER_NEARESTcv2.INTER_LINEARcv2.INTER_LANCZOS4 的对比:

在这里插入图片描述

根据上述对比:

  • 如果目标是快速缩小图像且可以接受一定的质量损失,应选择 cv2.INTER_NEAREST

  • 如果需要在缩小图像时保持较高的质量,应选择 cv2.INTER_AREA

  • 对于需要在放大和缩小图像时都保持较好质量的应用, cv2.INTER_CUBICcv2.INTER_LINEAR 是较好的选择,具体取决于是否可以接受较慢的处理速度。

  • 当图像质量是最重要的,尤其是在放大图像时,应选择 cv2.INTER_LANCZOS4,尽管这会牺牲处理速度。

一般在做训练数据预处理时,缩小图像使用 cv2.INTER_AREA,放大图像使用 cv2.INTER_CUBIC

def image_resize(img, size):if img.shape[0] > size:# 基于像素区域关系的重采样,适用于图像缩小,尤其是图像抽取,可以避免摩尔纹现象img = cv2.resize(img, (size, size), interpolation=cv2.INTER_AREA)elif img.shape[0] < size:# 基于4x4像素邻域的三次插值,适用于图像放大和缩小,能够提供较高的图像质量,但计算量相对较大img = cv2.resize(img, (size, size), interpolation=cv2.INTER_CUBIC)return img

参考文档:
https://blog.csdn.net/guyuealian/article/details/85097633


http://www.mrgr.cn/news/8921.html

相关文章:

  • FPGA开发——在线调试工具Signal Tap的使用
  • MySQL——多表操作(二)操作关联表(2)添加数据
  • leetcode刷题—二分查找
  • C语⾔内存函数
  • uniapp在线视频监控开发
  • 指针(二)
  • MongoDB 单机和集群环境部署教程
  • 【Kaggle】练习赛《有毒蘑菇的二分类预测》(下)
  • CSS笔记
  • 【工控】线扫相机小结
  • SQLite 插入数据并返回自增ID
  • 《操作系统---PV操作》(同步与互斥)
  • 计算机操作员试题(公共科目)
  • HeidiSQL中一些简单mysql语句的含义(一)
  • 如何评估Redis的性能
  • 面向对象编程:深入PHP的封装、继承和多态性!
  • tomcat实战演练
  • 《机器学习》—— OpenCV 对图片的各种操作
  • LCD模组驱动开发
  • ES详细使用!Elasticsearch实现索引操作,增删改查,批处理