水印,你在很多公司图片都会看到,里面都会加入图片都会有显式水印,或者半隐形水印。平常加水印,只要将两张图片色值混合就没问题了
import cv2 import numpy as np import matplotlib import matplotlib.pyplot as plt img = cv2.imread("lena.jpg") img= cv2.cvtColor(img, cv2.COLOR_BGR2RGB) wm = cv2.imread("cang_wang.png") wm = cv2.resize(wm,(364,40)) # wm = 255-wm img1 = cv2.resize(img,(600,600)) //圈定感兴趣区域 imgROI = img1[600-wm.shape[0]:600,600-wm.shape[1]:600] //图片透明度混合 cv2.addWeighted(imgROI,0.5,wm,0.5,0,imgROI) plt.figure(figsize=(11,11)) plt.imshow(img1)
这里引用到Opencv 图像叠加 添加水印
数字水印是怎样的?1、预处理隐藏信息首先将需要加密的图像进行转换为二值图像,其中只包含两个灰度级0和1。其中0对应黑色,1对应白色。在opencv中其实没有二值图像,我们可以将二值图像理解为特殊的灰度图像。由于需要将隐藏信息嵌入图片的第0位(每个像素点分出一个bit位来存储信息)所以被隐藏信息图像的最高灰度级必须为1,最低为0。
对图像进行二值化可以利用以下方法:
s_black = s[:,: