resize

函数功能

resize函数用于改变图像的尺寸,可以放大或缩小图像。通过指定目标大小或缩放因子,用户可以灵活调整图像的宽度和高度。

该函数还支持多种插值方法,如cv2.INTER_LINEAR、cv2.INTER_CUBIC、cv2.INTER_NEAREST_EXACT等算法,以保证图像在缩放过程中尽可能保持质量。

函数接口

1
cv2.resize(src, dsize, fx=0, fy=0, interpolation=cv2.INTER_LINEAR)

参数

参数名

描述

取值范围

输入/输出

src

输入图像。

非空

输入

dsize

目标图像的大小(宽度和高度),如(width, height)。如果给定,则设置的fx和fy的值无效;如果设置为(0, 0)或者不指定,则需要使用fx和fy设置的值。

tuple(x, y),目标图像尺寸,x,y为正整数

输入

fx

水平缩放因子,默认为0。

(0, inf)

输入

fy

垂直缩放因子,默认为0。

(0, inf)

输入

interpolation

插值方法,如cv2.INTER_LINEAR(默认)、cv2.INTER_NEAREST_EXACT、cv2.INTER_CUBIC等。

cv2.INTER_LINEAR(默认)、cv2.INTER_NEAREST_EXACT、cv2.INTER_CUBIC

输入

返回值

错误码

错误码

描述

INVALID_PARAM_MSG

参数“src”为空,dsize尺寸或者fx、fy错误。

NOT_SUPPORT_MSG

输入“src”类型错误或不是“interpolation”支持的插值方法或“fx”、“fy”输入错误。

示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import numpy as np
import cv2

# 创建一个5x5的简单图像 
src = np.array([[0, 0, 0, 0, 0],
               [0, 1, 1, 1, 0],
               [0, 1, 0, 1, 0],
               [0, 1, 1, 1, 0],
               [0, 0, 0, 0, 0]], dtype=np.uint8)  

dst = cv2.resize(src, dsize=(10, 10), interpolation=cv2.INTER_LINEAR)  

print(dst)

运行结果:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
[[0 0 0 0 0 0 0 0 0 0]
 [0 0 0 0 0 0 0 0 0 0]
 [0 0 1 1 1 1 1 1 0 0]
 [0 0 1 1 1 1 1 1 0 0]
 [0 0 1 1 0 0 1 1 0 0]
 [0 0 1 1 0 0 1 1 0 0]
 [0 0 1 1 1 1 1 1 0 0]
 [0 0 1 1 1 1 1 1 0 0]
 [0 0 0 0 0 0 0 0 0 0]
 [0 0 0 0 0 0 0 0 0 0]]