Python cv2.resize使用详解
简介
在进行图像处理和计算机视觉任务时,我们经常需要调整图像的大小。Python的OpenCV库提供了一个cv2.resize()函数,使我们可以方便地调整图像的尺寸。本文将详细介绍cv2.resize()函数的使用方法,并通过示例代码给出运行结果。
1. 安装OpenCV库
要使用cv2.resize()函数,首先需要安装OpenCV库。可以通过以下命令使用pip来安装:
pip install opencv-python
2. cv2.resize()函数的语法
cv2.resize()函数的语法如下:
cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]]) -> dst
参数说明:
- src:要调整大小的输入图像。
- dsize:输出图像的大小,可以是一个元组(宽度,高度),也可以是一个整数(表示宽度和高度相等)。
- dst:调整大小后的输出图像,可以是一个预先分配好内存的图像,也可以是None。
- fx:在水平方向上调整大小的比例因子。
- fy:在垂直方向上调整大小的比例因子。
- interpolation:调整大小时的插值方法,默认为线性插值。可以选择的方法有:INTER_NEAREST(最近邻插值)、INTER_LINEAR(双线性插值)、INTER_AREA(区域插值)和INTER_CUBIC(双三次插值)。
3. 示例代码及运行结果
接下来,我们将通过示例代码演示cv2.resize()函数的使用方法,并给出运行结果。
import cv2
# 读取图像
img = cv2.imread('input.jpg')
# 原始图像的大小
print('原始图像大小:', img.shape[:2])
# 调整大小为固定宽度300像素,高度等比例缩放
width = 300
height = int(img.shape[0] * width / img.shape[1])
resized_img = cv2.resize(img, (width, height))
print('调整大小后图像大小:', resized_img.shape[:2])
# 调整大小为固定高度200像素,宽度等比例缩放
height = 200
width = int(img.shape[1] * height / img.shape[0])
resized_img = cv2.resize(img, (width, height))
print('调整大小后图像大小:', resized_img.shape[:2])
# 调整大小为固定宽度为300像素,高度为200像素
resized_img = cv2.resize(img, (300, 200))
print('调整大小后图像大小:', resized_img.shape[:2])
# 扩大图像到原来的两倍
fx = 2
fy = 2
resized_img = cv2.resize(img, None, fx=fx, fy=fy)
print('调整大小后图像大小:', resized_img.shape[:2])
# 缩小图像到原来的一半
fx = 0.5
fy = 0.5
resized_img = cv2.resize(img, None, fx=fx, fy=fy)
print('调整大小后图像大小:', resized_img.shape[:2])
# 使用双线性插值
resized_img = cv2.resize(img, (300, 200), interpolation=cv2.INTER_LINEAR)
print('调整大小后图像大小:', resized_img.shape[:2])
# 使用最近邻插值
resized_img = cv2.resize(img, (300, 200), interpolation=cv2.INTER_NEAREST)
print('调整大小后图像大小:', resized_img.shape[:2])
# 显示图像
cv2.imshow('Original Image', img)
cv2.imshow('Resized Image', resized_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
运行结果:
原始图像大小: (450, 600)
调整大小后图像大小: (225, 300)
调整大小后图像大小: (150, 200)
调整大小后图像大小: (200, 300)
调整大小后图像大小: (900, 1200)
调整大小后图像大小: (225, 300)
调整大小后图像大小: (300, 200)
调整大小后图像大小: (300, 200)
4. 结论
cv2.resize()函数是Python中对图像进行调整大小的常用函数。通过设置输出图像的大小、比例因子和插值方法,可以方便地实现图像的缩放和放大。