cv2resize的时候用0填充
时间: 2024-09-09 11:15:17 浏览: 44
在OpenCV(cv2)中,如果你使用`cv2.resize()`函数对图像进行缩放,并希望超出新尺寸范围的部分用0填充,你需要先创建一个与新尺寸匹配的全零数组,再将图像内容复制到这个数组上。以下是一个简单的例子:
```python
import cv2
import numpy as np
# 读取图像
original_image = cv2.imread('your_image.jpg')
# 确定新的尺寸
target_size = (new_width, new_height)
# 创建一个与新尺寸相同的全零数组
filled_array = np.zeros(target_size, dtype=original_image.dtype)
# 使用cv2.resize()将原始图像缩小,并将结果复制到填充数组
filled_array[new_height//2-height//2:new_height//2+height//2, new_width//2-width//2:new_width//2+width//2] = cv2.resize(original_image, target_size, interpolation=cv2.INTER_NEAREST)
# 输出或保存填充后的图像
cv2.imshow("Zero-Padded Image", filled_array)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个例子中,`interpolation=cv2.INTER_NEAREST`用于选择最近像素的颜色进行插值,使得超出新尺寸的部分直接变为黑色(0)。其他插值选项如`INTER_LINEAR`、`INTER_CUBIC`等可以提供更平滑的过渡效果,但会考虑周围像素的颜色。
阅读全文