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)
相关推荐
空堂与归5 小时前
国产开源登顶全球第一,1.3B OXR 登顶三榜:RSI 闭环重塑文档解析
人工智能·ai·agent
猿究院--Cu-Sn合金5 小时前
Spring Boot + DeepSeek 求职 Agent 实践:工具注册、多轮调用与简历 JD 对比
数据库·人工智能·spring boot·后端·deepseek
合众恒跃5 小时前
合众恒跃具身机器人嵌入式AI解决方案
人工智能·机器人·rk3588·jetson·英伟达·瑞芯微·rk3576
陕西亿鑫鸿物联技术有限公司5 小时前
传统安防利旧升级实战:如何基于边缘计算接入海康大华IPC构建AI分析系统?
深度学习·计算机视觉·边缘计算·物联网架构·流媒体技术
梦想很大很大5 小时前
让 Codex 自由发挥,给 nvm-desktop 换个 UI
前端·人工智能·设计
论文复现现场5 小时前
DeepSeek V4.1 Flash 和 V4 Pro 有什么区别?API 价格、性能与迁移建议
java·服务器·人工智能·python·大模型api·deepseek·deepseek v4.1
拜小白5 小时前
【论文解读】Ray-casting MLC:用几何感知光线投射做自训练房间布局估计
深度学习·计算机视觉·全景图
hey you~5 小时前
医疗器械门店语音机器人,产品咨询来电,怎么限制回答医疗诊断类内容?
人工智能·机器人·语音识别·意图识别·语音机器人·转人工·nlu安全
zyseo85 小时前
谷歌SEO 关键词研究完整方法论:从种子词到优先级矩阵
数据库·人工智能·矩阵
chaser&upper6 小时前
从 xParse 看企业 AI:业务知识如何进入工作流
人工智能·agent·数据处理·合合信息·textin xparse