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)
相关推荐
Token炼金师2 分钟前
工程基础设施层:MLOps闭环断裂让模型上线即裸奔
人工智能·深度学习·llm
万亿少女的梦1685 分钟前
基于深度学习的动物图像分类系统设计与实现
pytorch·深度学习·计算机视觉·图像分类·convnext
小雨青年12 分钟前
【HarmonyOS 7开发者前瞻】06 HarmonyOS 7 AI 能力接入前,先用业务场景判断优先级
人工智能·华为·harmonyos
格子生意经18 分钟前
GEO系统多引擎自适应算法实战解析
大数据·人工智能
咕泡科技21 分钟前
AI 教培行业新标杆:咕泡科技以腾讯云 CDE× 湖师大校企 × 具身智能构建三重唯一性壁垒
人工智能·科技·腾讯云
俊哥V23 分钟前
AI一周事件 · 2026-07-01 至 2026-07-07
人工智能·ai
Alan_69123 分钟前
AI 时代的 API:大模型如何重塑接口设计
人工智能
四方云25 分钟前
2026电销系统科普:直呼、回拨没有优劣之分,选对场景才高效
人工智能·机器人·销售成长·电销系统
OceanBase数据库官方博客25 分钟前
基于 OceanBase 湖库一体架构,构建 AI 时代的数据基础设施
人工智能·架构·oceanbase
多年小白28 分钟前
DeepSeek自研芯片“去英伟达化“、微软Office悄悄换掉OpenAI、AI制药闯入III期临床 | 7月8日AI日报
人工智能·ai