cv2放大图像后用0填充
时间: 2024-09-09 19:15:16 浏览: 54
在OpenCV (cv2) 中,如果你想放大一个图像并使用0填充未放大的部分,你可以通过以下步骤来实现:
1. **读取图像**:首先使用`cv2.imread()`函数加载图像。
2. **获取原尺寸**:通过访问`image.shape`获取图像的原始宽度和高度。
3. **确定放大比例**:确定你想要的放大倍数,例如两倍大小(`scale = 2`)。
4. **计算新的尺寸**:将原尺寸乘以放大比例得到新的宽度和高度。
5. **创建新的零填充图像**:使用`np.zeros()`创建一个新的黑图(全为0),大小等于新的尺寸,然后使用`cv2.resize()`函数进行放大,但是传入一个全为0的数组,这样未放大的部分就会保持为0。
6. **合并图像**:将放大后的图像与0填充的图像相加(如果需要保持原图像的透明度,可能需要进行alpha blending,这里假设不需要)。
示例代码如下:
```python
import cv2
import numpy as np
# 加载图像
img = cv2.imread('your_image.jpg')
# 获取原尺寸
height, width = img.shape[:2]
# 定义放大比例
scale = 2
# 计算新的尺寸
new_height, new_width = int(height * scale), int(width * scale)
# 创建全0的新图像
zero_filled_img = np.zeros((new_height, new_width))
# 扩大并填充0
resized_img = cv2.resize(img, (new_width, new_height), interpolation=cv2.INTER_NEAREST)
result = zero_filled_img + resized_img
# 写回文件或显示结果
cv2.imwrite('amplified_image_with_zeros.jpg', result)
```
阅读全文