opencv resize函数用法
时间: 2024-12-01 22:01:11 浏览: 27
C++OpenCV3源代码resize函数用法
在OpenCV库中,`resize()`函数是一个常用的功能,用于改变图像的尺寸。其基本语法如下:
```python
cv2.resize(image, dsize, interpolation flags=None)
```
这里参数说明如下:
- `image`: 输入的原始图像,可以是numpy数组或OpenCV Mat对象。
- `dsize`: 输出图像的新尺寸,可以是一个元组 `(width, height)`,或者是另一个Mat对象表示的目标分辨率。
- `interpolation flags`: 可选的插值方法,用于处理放大、缩小过程中可能出现的像素间插值。常见的插值方法有:
- `INTER_NEAREST` (最近邻插值):最简单,对每个新像素直接取源像素值。
- `INTER_LINEAR` (线性插值): 使用4个相邻像素进行线性插值。
- `INTER_CUBIC` (立方卷积插值):适用于照片缩放,效果更好,但计算量较大。
- `INTER_AREA` (面积插值): 保持原图的长宽比,可能导致边缘失真。
- 更多其他选项如 `INTER_LANCZOS4`, 等高级插值方法。
示例用法:
```python
import cv2
# 加载图像
img = cv2.imread('input.jpg')
# 缩小图像到50%的大小,保留长宽比
resized_img = cv2.resize(img, None, fx=0.5, fy=0.5, interpolation=cv2.INTER_LINEAR)
# 或者指定新的宽度和高度
resized_img = cv2.resize(img, (int(img.shape[1] / 2), int(img.shape[0] / 2)), interpolation=cv2.INTER_CUBIC)
# 保存结果
cv2.imwrite('output.jpg', resized_img)
```
阅读全文