python代码2.读取两幅图像,使用cv2.add()函数实现图像间的加运算。(建议让图像的加运算操作有意义,例如给图像加个logo,或者是给图像加个水印);
时间: 2024-10-09 10:00:56 浏览: 29
OpenCV-Python图像的加法运算cv2.add函数详解.rar
在Python中,我们通常使用OpenCV (cv2) 来处理图像,这里我们可以创建一个新的图像,并将其作为水印添加到另一张原始图像上。以下是一个简单的例子,假设我们要将一个logo图片作为水印添加到主图片上:
```python
import cv2
import numpy as np
# 读取原始图像和logo
img_main = cv2.imread('main_image.jpg', cv2.IMREAD_COLOR) # 主图片
logo = cv2.imread('logo.png', cv2.IMREAD_UNCHANGED) # logo图片,保持所有通道(包括透明度)
# 检查logo是否比主图片小,如果是,则需要调整大小
if logo.shape[0] > img_main.shape[0] or logo.shape[1] > img_main.shape[1]:
logo = cv2.resize(logo, (int(img_main.shape[1]), int(img_main.shape[0])))
# 计算叠加的透明度
alpha = 0.5 # 透明度,范围0~1,越接近1越透明
# 添加logo到主图片
dst = cv2.addWeighted(img_main, 1 - alpha, logo, alpha, 0) # 加权求和,1 - alpha表示主图片权重,alpha表示logo权重
# 显示结果
cv2.imshow('Combined image', dst)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个例子中,我们将logo以半透明的方式添加到主图片上,`cv2.addWeighted()`函数结合了两个图像的像素值,并根据给定的权重(这里是`1 - alpha` 和 `alpha`),计算出新的像素值。`cv2.waitKey(0)`用于暂停显示以便查看结果。
阅读全文