Python OpenCV图片缩放详解:cv2.resize函数用法与插值算法

许南星
许南星
发布时间:2026-10-13 | 4人浏览过
原创

本文详细介绍OpenCV中cv2.resize函数的使用方法,涵盖输入输出参数、尺寸格式及五种插值算法(最近邻、双线性、区域、双三次、Lanczos)。通过Python代码示例演示如何指定输出尺寸或使用缩放系数进行图像缩放,并解析默认插值方式,帮助开发者掌握高效处理图像尺寸的技巧。

cv2.resize函数原型与参数解析

OpenCV中用于图像缩放的核心函数原型如下:


cv2.resize(InputArray src, OutputArray dst, Size, fx, fy, interpolation)

该函数的主要参数包括:输入图像src、输出图像dst、目标尺寸Size、沿x轴和y轴的缩放系数fx与fy,以及指定插值方式的interpolation参数。

InputArray src 输入图片
OutputArray dst 输出图片
Size 输出图片尺寸
fx, fy 沿x轴,y轴的缩放系数
interpolation 插入方式

常用插值算法详解

interpolation参数可选的插值方法包括:INTER_NEAREST(最近邻插值)、INTER_LINEAR(双线性插值,默认选项)、INTER_AREA(像素区域关系重采样,适合缩小)、INTER_CUBIC(4x4像素邻域的双三次插值)以及INTER_LANCZOS4(8x8像素邻域的Lanczos插值)。

INTER_NEAREST

最近邻插值

INTER_LINEAR

双线性插值(默认设置)

INTER_AREA

使用像素区域关系进行重采样。

INTER_CUBIC

4x4像素邻域的双三次插值

INTER_LANCZOS4

8x8像素邻域的Lanczos插值

使用注意事项

在使用cv2.resize时需注意以下关键点:

首先,输出尺寸Size的格式为(宽,高),即先指定宽度再指定高度。

其次,若不指定Size而仅使用fx和fy,则默认采用双线性插值方法进行缩放。

以下代码演示了如何使用cv2.resize进行图像缩放操作:

Python代码实现示例


import cv2 as cv
 
# 读入原图片
img = cv.imread('test.jpg')
# 打印出图片尺寸
print(img.shape)
# 将图片高和宽分别赋值给x,y
x, y = img.shape[0:2]
 
# 显示原图
cv.imshow('OriginalPicture', img)
 
# 缩放到原来的二分之一,输出尺寸格式为(宽,高)
img_test1 = cv.resize(img, (int(y / 2), int(x / 2)))
cv.imshow('resize0', img_test1)
cv.waitKey()
 
# 最近邻插值法缩放
# 缩放到原来的四分之一
img_test2 = cv.resize(img, (0, 0), fx=0.25, fy=0.25, interpolation=cv.INTER_NEAREST)
cv.imshow('resize1', img_test2)
cv.waitKey()
cv.destroyAllWindows()

希望以上内容能帮助您更好地理解OpenCV图片缩放功能,欢迎继续支持本站获取更多技术资源。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表