218. 多行倾斜文字水印

12. 绘制图像索引

一、多行倾斜文字水印

  • 水印是叠加在图像上的标志、签名、文本或图案,用于保护图像的版权。
    先在黑色背景上添加图像或文字制作水印,再使用 cv.addWeight 函数,通过重叠混合把水印添加到原始图像上。
    也可以以水印图案或文字区域作为掩模,使用 cv.add 函数修改掩模区域的像素值,实现把水印添加到原始图像上。

二、例程

  • A4.10:为图像添加水印
import cv2
import numpy as np
from matplotlib import pyplot as plt

# A4.10 为图像添加水印
img = cv2.imread(r"E:/OpenCV/bgra.png", 1)  # 加载原始图片
h, w = img.shape[0], img.shape[1]

# # 生成水印图案
# logo = cv2.imread("../images/logoXupt.png", 0)  # 加载 Logo
# logoResize = cv2.resize(logo, (100,100))  # 调整图片尺寸
# grayMark = np.zeros(img.shape[:2], np.uint8)  # 水印黑色背景
# grayMark[10:110,10:110] = logoResize  # 生成水印图案

# 生成文字水印
mark = np.zeros(img.shape[:2], np.uint8)  # 黑色背景
for i in range(h//100):
    cv2.putText(mark, "youcans20", (20,90+100*i), cv2.FONT_HERSHEY_SIMPLEX, 1, 255, 2)
MAR = cv2.getRotationMatrix2D((w//2,h//2), 45, 1.0)  # 旋转 45 度
grayMark = cv2.warpAffine(mark, MAR, (w,h))  # 旋转变换,默认为黑色填充

# 为图像添加水印 1
markC3 = cv2.merge([grayMark, grayMark, grayMark])
imgMark1 = cv2.addWeighted(img, 1, markC3, 0.25, 0)  # 加权加法图像融合

# 为图像添加水印2
imgMark2 = cv2.add(img, 64, mask=grayMark)  # 以水印图案作为掩模

plt.figure(figsize=(9, 6))
plt.subplot(221), plt.title("original"), plt.axis('off')
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
plt.subplot(222), plt.title("watermark"), plt.axis('off')
plt.imshow(cv2.cvtColor(markC3, cv2.COLOR_BGR2RGB))
plt.subplot(223), plt.title("watermark embedded"), plt.axis('off')
plt.imshow(cv2.cvtColor(imgMark1, cv2.COLOR_BGR2RGB))
plt.subplot(224), plt.title("watermark embedded"), plt.axis('off')
plt.imshow(cv2.cvtColor(imgMark1, cv2.COLOR_BGR2RGB))
plt.tight_layout()
plt.show()

三、资料

youcans_的博客:
https://blog.csdn.net/youcans/article/details/125506829
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容