OpenCV图片添加水印

函数效果图:

本来只有蓝色背景,这两个人物是水印添加上去的

原理:

本实验中添加水印的概念其实可以理解为将一张图片中的某个物体或者图案提取出来,然后叠加到另一张图片上。具体的操作思想是通过将原始图片转换成灰度图,并进行二值化处理,去除背景部分,得到一个类似掩膜的图像。然后将这个二值化图像与另一张图片中要添加水印的区域进行"与"运算,使得目标物体的形状出现在要添加水印的区域。最后,将得到的目标物体图像与要添加水印的区域进行相加,就完成了添加水印的操作。这样可以实现将一个图像中的某个物体或图案叠加到另一个图像上,从而实现添加水印的效果。就本实验而言,会用到两个新的组件,一个是模板输入,一个是图像融合。

python 复制代码
import cv2
logo=cv2.imread('./tm1.png')
img=cv2.imread('./bgc.jpeg')
logo2=cv2.imread('./tm2.png')
def koutu(logo,img,height=0,width=0):
    logo_gray = cv2.cvtColor(logo, cv2.COLOR_BGR2GRAY)
    _,logo_binary=cv2.threshold(logo_gray,
                                0,#阈值
                                255,#最大值
                                cv2.THRESH_BINARY_INV)#反阈值法
    # 二值化的logo图与原图的roi区域与操作
    ROI=img[height:height+logo.shape[0],width:width+logo.shape[1]]# 原图的roi区域:高度0 ~ rows-1,宽度0 ~ cols-1
    ROI_logo=cv2.bitwise_and(ROI,ROI,mask=logo_binary)# 通过位于操作得到图片除掩膜以外的背景
    img_logo=cv2.add(ROI_logo,logo)# 图像融合
    img[height:height+logo.shape[0], width:width+logo.shape[1]] = img_logo# 把roi的数据更新到原图中
    cv2.imshow('img', img)
    cv2.waitKey(0)
koutu(logo,img,0,0)
koutu(logo2,img,width=500)
相关推荐
for_ever_love__1 分钟前
LangChain 时间加权检索:让‘最近的事‘更容易被想起
人工智能·语言模型·数据挖掘·langchain·向量·检索·时间加权
FPC_小西1 分钟前
您知道嵌入式开发中八大常用接口与总线有哪些吗?
人工智能·单片机·嵌入式硬件·pcb工艺·hdi高密度互联
陈嘿萌2 分钟前
CVPR 2026 | 上交&复旦&清华 3M-TI:让 RGB 成为热成像超分助手,手机也能看清细节!
人工智能·计算机视觉·智能手机·学术研究与理论基础
weixin_446260858 分钟前
认知谦逊:知识冲突场景下大模型智能体的识别‑处理‑上报评测框架
人工智能
Summer-Bright10 分钟前
深度 | 记忆的锁定账:模型可以随便换,记忆却搬不走
人工智能·agent·记忆
袖清暮雨11 分钟前
机器学习之其他聚类(层次聚类+DBSCAN算法)
人工智能·机器学习·ai·聚类
YOLO数据集集合15 分钟前
滑坡检测数据集 | 滑坡检测 地质灾害 无人机巡检 应急响应 目标检测 YOLO格式 深度学习数据集 计算机视觉10670期
深度学习·yolo·目标检测·计算机视觉·无人机·滑坡
雪雪90816 分钟前
Work Agent深度解读:AI如何自主完成多步骤长程工作任务
人工智能
小宋102116 分钟前
Recursive Language Models 实战:递归处理超长外部文本
人工智能·深度学习·机器学习
星云低代码开发平台18 分钟前
AI 定时任务接 ERP:账号切换后的权限校验与异常状态设计
人工智能·定时任务·erp