python用opencv不同大小图片叠加
时间: 2024-10-13 14:05:58 浏览: 30
python opencv把一张图片嵌入(叠加)到另一张图片上的实现代码
5星 · 资源好评率100%
在Python中,使用OpenCV将不同大小的图片叠加在一起,通常涉及到图像的resize、padding或者拼接操作。这里是一个基本步骤:
1. **读取图片**:首先,使用`cv2.imread()`函数分别读取需要叠加的两张图片。
```python
img1 = cv2.imread('image1.jpg')
img2 = cv2.imread('image2.jpg')
```
2. **调整大小**:如果两张图片的尺寸不同,你需要调整其中一张图片到另一张的尺寸。可以使用`cv2.resize()`函数进行缩放,也可以选择裁剪保持原图比例。
```python
if img1.shape != img2.shape:
img1_resized = cv2.resize(img1, (img2.shape[1], img2.shape[0]))
else:
img1_resized = img1
```
3. **合并图片**:有两种常见的方式进行叠加:
- **直接拼接**:如果图片在垂直方向上拼接,可以直接使用`np.hstack()`;如果是水平拼接,可以用`np.vstack()`。
- **添加透明度**:如果你想要平滑地融合图片,可以设置一张图片的Alpha通道(透明度),然后与另一张图片做逐像素相加。
```python
# 使用alpha blending
alpha = 0.5 # 透明度范围0-1,越大越透明
overlay = cv2.addWeighted(img1_resized, alpha, img2, 1 - alpha, gamma=0) # gamma用于亮度调整
# 水平拼接
result = np.hstack([img1_resized, overlay])
# 或者
result = cv2.hconcat([img1_resized, img2]) # 如果不需要透明度
4. **保存结果**:最后,使用`cv2.imwrite()`将处理后的图片保存起来。
```python
cv2.imwrite('merged_image.jpg', result)
```
阅读全文