14.Opencv大作业2——为图像添加水印

设计步骤: 

#1.引入一张图片

#2.要有一个LOGO

#3.计算图片在什么地方添加,在添加的地方地方变成黑色

#4.利用add,将logo与图片叠加在一起

示例教程:

#1.引入一张图片
#2.要有一个LOGO
#3.计算图片在什么地方添加,把需要添加的地方变成黑色,变成黑色的方法,先取反,再进行与
#4.利用add,将logo与图片叠加在一起

import cv2
import numpy as np

#导入需要添加LOGO的图片
img = cv2.imread('C:\\Users\\Mengyang\\Desktop\\112.png')

#创建LOGO
logo = np.zeros((200,200,3),np.uint8)
mask =  np.zeros((200,200),np.uint8)  #掩码,2通道

#绘制LOGO
logo[20:120,20:120] = [0,0,255]
logo[80:180,80:180] = [0,255,0]

mask[20:120,20:120] = 255
mask[80:180,80:180] = 255

#对mask按位求反
m = cv2.bitwise_not(mask)

#选择图片添加logo位置
roi = img[0:200,0:200]  #选择要显示的区域

#与m进行与操作
tmp = cv2.bitwise_and(roi, roi, mask = m)   #3通道图像的与操作,把需要的区域扣出来

#在抠出来的区域加logo
dst = cv2.add(tmp,logo)  #原图加水印的区域roi
img[0:200,0:200] = dst   #进行区域赋值,在原图上加水印

# cv2.imshow('tmp',tmp)
# cv2.imshow('mask',mask)
#cv2.imshow('logo',logo)
# cv2.imshow('m',m)
cv2.imshow('dst',dst)
cv2.imshow('img',img)


cv2.waitKey(0)

运行结果:

 进一步修改:添加想要的LOGO

import cv2
import numpy as np

#导入需要添加LOGO的图片
img = cv2.imread('C:\\Users\\Mengyang\\Desktop\\112.png')
#导入logo
logo= cv2.imread('C:\\Users\\Mengyang\\Desktop\\111.png')

mask =  np.zeros((100,100),np.uint8)  #掩码,2通道
mask[0:100,0:100] = 255  

#对mask按位求反,得到黑色区域
m = cv2.bitwise_not(mask)

#选择图片添加logo位置
roi = img[50:150,100:200]  #选择要显示的区域

tmp = cv2.bitwise_and(roi,roi,mask=m)  #抠图

#在抠出来的区域加logo
dst = cv2.add(tmp,logo)  #原图加水印的区域roi
img[50:150,100:200] = dst   #进行区域赋值,在原图上加水印

cv2.imshow('tmp',tmp)
cv2.imshow('mask',mask)
cv2.imshow('logo',logo)
cv2.imshow('m',m)
cv2.imshow('dst',dst)
cv2.imshow('img',img)

cv2.waitKey(0)

运行结果:

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值