如何使用OpenCV Python在图像上创建水印?
在数字时代,数码产品广泛应用于各行各业,其中,照片的使用很常见,从个人生活中的照片到商业广告照片,都存在着利益问题,因此,保护数字图片的版权势在必行。其中,添加水印是一种经济有效的方式。本文着重探讨如何使用OpenCV Python在图片上添加文字水印。OpenCV 的全称叫 Open Source Computer Vision Library 是一个跨平台的计算机视觉库、机器视觉库。在本文中,我们将通过使用 OpenCV Python 添加水印。
步骤
下面是将文本添加到图片上的主要步骤:
步骤 1:导入模块
我们可以使用以下代码导入 OpenCV 和 numpy 模块。Numpy 是一个用于科学计算的基本包,它在 Python 中用作科学计算的通用数组处理库。它也用于 TensorFlow。
import cv2
import numpy as np
步骤 2:读取图片
我们在这里使用 imread()函数在 OpenCV 中读取一张图片。函数参数包括文件名和读取模式。在本例中,我们使用“ cv2.IMREAD_UNCHANGED”以保留 alpha 通道值。
image = cv2.imread("example.jpg", cv2.IMREAD_UNCHANGED)
步骤 3:添加文本水印
在此步骤中,我们将添加一个文字水印。在下面的代码中,我们使用 putText()函数向图片添加文本。该函数获取以下参数:
- image: 原始图像。
- text: 要添加的文本。
- org:文本的左下角坐标。
- font: 字体类型。
- fontScale: 字体比例。
- color: 字体颜色,以 BGR 格式。
- thickness: 字体厚度。
- lineType: 字体线类型。
- bottomLeftOrigin: 如果它为 true,则表示文本的原点是放置文本框左下角。否则,该原点是左上角。
text = "Sample Text Watermark"
position = (50, 50)
font = cv2.FONT_HERSHEY_SIMPLEX
fontScale = 1
color = (0, 255, 0)
thickness = 2
lineType = cv2.LINE_AA
bottomLeftOrigin = False
cv2.putText(image, text, position, font, fontScale, color, thickness, lineType, bottomLeftOrigin)
步骤 4:保存图像
在最后一步中,我们使用以下代码保存图像。
cv2.imwrite('example_watermark.jpg', image)
完整代码
现在将所有步骤组合在一起,得到的代码如下:
import cv2
import numpy as np
image = cv2.imread("example.jpg", cv2.IMREAD_UNCHANGED)
text = "Sample Text Watermark"
position = (50, 50)
font = cv2.FONT_HERSHEY_SIMPLEX
fontScale = 1
color = (0, 255, 0)
thickness = 2
lineType = cv2.LINE_AA
bottomLeftOrigin = False
cv2.putText(image, text, position, font, fontScale, color, thickness, lineType, bottomLeftOrigin)
cv2.imwrite('example_watermark.jpg', image)
结论
本文展示了如何使用OpenCV Python在图像上添加文本水印。Watermark可以帮助保护一张照片的版权,确保其内容不被盗用或复制。此外,本文还介绍了OpenCV中一些常见的函数,如 imread()和 putText()等。希望读者通过学习本文,能够了解到更多有关数字水印的知识,从而更好地保护自己的版权。