为什么我的网站百度搜不到,现在网站如何做优化,google浏览器官网入口,外汇平台 网站开发第二篇#xff1a;图片添加水印#xff08;加 logo#xff09; 1. 实验原理
水印原理#xff1a;
图片添加水印是图像叠加的一种应用#xff0c;分为透明水印和不透明水印。水印的实现通常依赖于像素值操作#xff0c;将水印图片融合到目标图片中#xff0c;常用的方法…第二篇图片添加水印加 logo 1. 实验原理
水印原理
图片添加水印是图像叠加的一种应用分为透明水印和不透明水印。水印的实现通常依赖于像素值操作将水印图片融合到目标图片中常用的方法包括 位运算通过掩码Mask将目标区域清空再将水印叠加到清空的区域。Alpha 混合Alpha Blending通过加权计算将水印半透明地融合到目标图片。
步骤
将水印图片转为灰度图并通过阈值处理生成二值化掩码。利用掩码清空背景图像中水印位置的区域。将水印图片嵌入到清空区域完成水印添加。 2. 实验代码
以下为具体代码实现
import cv2# 读取背景图像
img cv2.imread(./background.jpeg)# 读取两个 logo 图像
logo cv2.imread(./logo.png)# --------------------处理第一个 logo--------------------# 将 logo 转换为灰度图像用于后续的二值化处理
logo_gray cv2.cvtColor(logo, cv2.COLOR_BGR2GRAY)# 对灰度图像进行二值化处理生成二值掩码
_, logo_binary cv2.threshold(logo_gray, # 输入的灰度图像0, # 阈值自动确定255, # 二值化后的最大值cv2.THRESH_BINARY_INV # 反阈值化将前景变为黑色背景变为白色
)# 定义第一个 logo 的插入位置 (x1, y1)
x1, y1 10, 100# 从背景图中截取一个与 logo 大小相同的 ROIRegion of Interest区域
ROI img[y1:y1logo.shape[0], x1:x1logo.shape[1]]# 使用掩码进行位与运算将 ROI 中对应 logo 的位置清空
ROI_logo cv2.bitwise_and(ROI, ROI, masklogo_binary)# 将清空的 ROI 区域与 logo 图像进行加法操作完成 logo 的融合
img_logo cv2.add(ROI_logo, logo)# 将融合后的 logo 替换回背景图的对应位置
img[y1:y1logo.shape[0], x1:x1logo.shape[1]] img_logo# --------------------显示最终结果--------------------# 显示最终结果图像
cv2.imshow(image, img)# 等待用户按键退出窗口
cv2.waitKey(0)# 销毁所有窗口
cv2.destroyAllWindows()3. 实验现象
实验结果
原始图片背景图为一个没有水印的图片。水印图像Logo 被叠加到背景图的指定位置与背景图的像素融合看起来像是原始图像的一部分。