图片缩放cv2.resize()详解

这篇具有很好参考价值的文章主要介绍了图片缩放cv2.resize()详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 函数cv2.resize()的参数

resize(src, dsize, dst=None, fx=None, fy=None, interpolation=None)

参数解释

参数 解释
src 输入原图像
dsize 输出图像的大小,方式:(宽,高)
fx width方向的缩放比例
fy height方向的缩放比例
interpolation 插值方式,默认为双线性插值

scr、dsize是必传参数,fx、fy、interpolation是可选参数。

2 interpolation参数解释

图片进行缩放,需要对像素进行重新计算,interpolation参数便是决定缩放图像时计算像素的方式,常见的方式以下五种:

参数 算法 数值
INTER_NEAREST 最邻近插值 0
INTER_LINEAR 双线性插值 (默认) 1
INTER_CUBIC 4x4像素邻域内的双立方插值 2
INTER_AREA 使用像素区域关系进行重采样 3
INTER_LANCZOS4 8x8像素邻域内的Lanczos插值 4

还有其他的选择:

INTER_BITS2 = 10
INTER_LINEAR_EXACT = 5
INTER_MAX = 7
INTER_NEAREST_EXACT = 6
INTER_TAB_SIZE = 32
INTER_TAB_SIZE2 = 1024

3 代码演示

import cv2

image = cv2.imread('./flower.jpg', 1)
h, w, _ = image.shape

image_f = cv2.resize(image, (0, 0), fx=2, fy=1)

image0 = cv2.resize(image, (w * 2, h * 2), interpolation=cv2.INTER_NEAREST)
image1 = cv2.resize(image, (w * 2, h * 2), interpolation=cv2.INTER_LINEAR)
image2 = cv2.resize(image, (w * 2, h * 2), interpolation=cv2.INTER_CUBIC)
image3 = cv2.resize(image, (w * 2, h * 2), interpolation=cv2.INTER_AREA)
image4 = cv2.resize(image, (w * 2, h * 2), interpolation=cv2.INTER_LANCZOS4)
image5 = cv2.resize(image, (w * 2, h * 2), interpolation=cv2.INTER_BITS)
image10 = cv2.resize(image, (w * 2, h * 2), interpolation=cv2.INTER_BITS2)

cv2.imshow('image', image)
cv2.imshow('image_f', image_f)
cv2.imshow('image0', image0)
cv2.imshow('image1', image1)
cv2.imshow('image2', image2)
cv2.imshow('image3', image3)
cv2.imshow('image4', image4)
cv2.imshow('image5', image5)
cv2.imshow('image10', image10)
cv2.waitKey(0)

4 效果

image
图片缩放cv2.resize()详解
image_f
图片缩放cv2.resize()详解
image0
图片缩放cv2.resize()详解

image1
图片缩放cv2.resize()详解
image2
图片缩放cv2.resize()详解
image3
图片缩放cv2.resize()详解

image4图片缩放cv2.resize()详解
image5
图片缩放cv2.resize()详解
image10
图片缩放cv2.resize()详解

5 总结

通过图形的效果看来,cv2.INTER_CUBIC、cv2.INTER_LANCZOS4和cv2.INTER_BITS2效果比较好,优于双线性插值cv2.INTER_LINEAR,但是双线性插值速度更佳,如果要缩小图片可以考虑cv2.INTER_LINEAR。

image_f这张图是才是fx和fy,如果不想手动计算图片,则dsize直接置为(0, 0),在大多数时候还是使用dsize而不用fx和fy。文章来源地址https://www.toymoban.com/news/detail-417865.html

到了这里,关于图片缩放cv2.resize()详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • cv2.resize()用法

    cv2.resize() 是 OpenCV 中的一个函数,用于改变图像的大小。 语法: cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]]) 参数: src - 原始图像 dsize - 目标图像的大小,格式为(宽度,高度) dst - 用于存储结果的图像 fx - 水平缩放因子 fy - 垂直缩放因子 interpolation - 插值方法,常用的有cv

    2024年02月16日
    浏览(44)
  • cv2.minAreaRect函数详解

    一、cv2.minAreaRect函数作⽤:返回不规则四边形的最⼩外接矩形 二、opencv4.2版本:         1、输入:多边形轮廓形点         2、输出:最⼩外接矩形的中⼼点坐标x,y,宽⾼w,h,⾓度anlge 三、angle角度解释:         x轴逆时针旋转最先重合的边为w,此时x轴逆时针旋转

    2024年02月13日
    浏览(72)
  • cv2.contourArea函数详解

    问题 :cv2.findContours找到所有的轮廓之后,想取出包含面积最大的轮廓,用cv2.contourArea算一下,但是得到的结果跟实际差别相当大,最大轮廓面积的计算成很小的一个值,而其中一个不太起眼的区域被计算得倒最大的面积。 findContours() 提取轮廓, contourArea() 计算轮廓面积。

    2024年02月11日
    浏览(50)
  • Opencv cv2.putText 函数详解

    具体函数如下: 函数源码如下: 对应的参数如下: 参数 具体表述 image 绘制的图像 text 绘制的文本 org 文本在图像中显示的坐标,用元组表示格式为(X坐标,Y坐标) font 文本字体类型,值可以为 FONT_HERSHEY_SIMPLEX 、 FONT_HERSHEY_PLAIN fontScale 字体比例因子乘以font-specific基本大小 c

    2024年02月09日
    浏览(76)
  • Python中cv2.Canny() 函数用法详解

    一、Canny算子边缘检测原理及步骤 cv2.Canny() 函数是 OpenCV 中的边缘检测函数之一,用于检测图像的边缘。它的基本原理是通过计算图像中每个像素点的梯度值来检测边缘。具体来说,它的实现步骤如下: 1、对输入图像进行高斯滤波,以平滑图像并去除噪声; 2、计算图像的梯

    2024年02月09日
    浏览(53)
  • 画圆操作——OpenCV中cv2.circle函数详解

    画圆操作——OpenCV中cv2.circle函数详解 在计算机视觉领域,图像处理是最基础的操作,而画圆操作又是其中不可或缺的一部分。在OpenCV中,cv2.circle函数可以实现画圆的功能。 下面是cv2.circle函数的基本格式: 其中各参数含义如下: img:要进行画圆操作的图片。 center:圆心坐

    2024年02月09日
    浏览(60)
  • 【Python/Opencv】图像权重加法函数:cv2.addWeighted()详解

    在OpenCV图像加法cv2.add函数详解详细介绍了图像的加法运算。 除了这种加法外,OpenCV还提供了带权重的加法,即两副图像的像素通道值相加时各自按一定的权重比例取值来相加。 假设有2个图像矩阵src1和src2,在两个图像融合时,各自的权重分别为alpha和beta,则二者融合后的目

    2024年02月15日
    浏览(93)
  • cv2.error: (-215:Assertion failed) !ssize.empty() in function ‘resize‘解决方案

    在做手势图像分类的时候,遇到了数据集不均衡的问题。于是对部分图像少的类别进行了数据集扩充。 具体如何扩充的参考了这位博主的方法: 数据集太少怎么办?数据集扩充方法 后续继续对数据集进行训练的时候就遇到了如题目所示的问题:cv2.error: (-215:Assertion failed) !

    2024年02月09日
    浏览(48)
  • 详解cv2.addWeighted函数【使用 OpenCV 添加(混合)两个图像-Python版本】

    有的时候我们需要将两张图片在alpha通道进行混合,比如深度学习数据集增强方式MixUp。OpenCV的 addWeighted 提供了相关操作,此篇博客将详细介绍这个函数,并给出代码示例。🚀🚀 o u t p u t I m g = s a t u r a t e ( α ∗ i n p u t I m g 1 + β ∗ i n p u t I m g 2 + γ ) rm outputImg=saturate( al

    2024年02月06日
    浏览(98)
  • 【C++】【Opencv】cv::warpAffine()仿射变换函数详解,实现平移、缩放和旋转等功能

    仿射变换是一种二维变换,它可以将一个二维图形映射到另一个二维图形上,保持了图形的“形状”和“大小”不变,但可能会改变图形的方向和位置。仿射变换可以用一个线性变换矩阵来表示,该矩阵包含了六个参数,可以进行平移、缩放、旋转等操作。通过原理、函数和

    2024年02月05日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包