如何使用OpenCV Python在图像上创建水印?

如何使用OpenCV Python在图像上创建水印?

要在图像上添加水印,我们将使用OpenCV中的 cv2.addWeighted() 函数。您可以使用以下步骤在输入图像上创建水印:

导入所需库。在以下所有Python示例中,必需的Python库是 OpenCV 。请确保您已经安装它。

import cv2

读取我们将要应用水印的输入图像,并读取水印图像。

img = cv2.imread("panda.jpg")
wm = cv2.imread("watermark.jpg")

访问输入图像的高度和宽度,以及水印图像的高度和宽度。

h_img, w_img = img.shape[:2]
h_wm, w_wm = wm.shape[:2]

上、下、右 计算出roi。

top_y = center_y - int(h_wm/2)
left_x = center_x - int(w_wm/2)
bottom_y = top_y + h_wm
right_x = left_x + w_wm

将水印添加到输入图像中。

roi = img[top_y:bottom_y, left_x:right_x]
result = cv2.addWeighted(roi, 1, wm, 0.3, 0)
img[top_y:bottom_y, left_x:right_x] = result

显示带水印的图像。要显示图像,我们使用cv2.imshow()函数。

cv2.imshow("带水印的图像", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

让我们看下面的例子,以更好地理解。

在此程序中,我们将向输入图像添加水印。

我们将以下图像用作此程序的 输入文件

如何使用OpenCV Python在图像上创建水印?

如何使用OpenCV Python在图像上创建水印?

示例

在此Python程序中,我们向输入图像添加了水印。

# 导入所需的库
import cv2

# 读取要加水印的图像
img = cv2.imread("panda.jpg")

# 读取水印图像
wm = cv2.imread("watermark.jpg")

# 水印图像的高度和宽度
h_wm, w_wm = wm.shape[:2]

# 图像的高度和宽度
h_img, w_img = img.shape[:2]

# 计算图像中心的坐标
center_x = int(w_img/2)
center_y = int(h_img/2)

# 计算上、下、右、左的边界
top_y = center_y - int(h_wm/2)
left_x = center_x - int(w_wm/2)
bottom_y = top_y + h_wm
right_x = left_x + w_wm

# 将水印添加到图像中
roi = img[top_y:bottom_y, left_x:right_x]
result = cv2.addWeighted(roi, 1, wm, 0.3, 0)
img[top_y:bottom_y, left_x:right_x] = result

# 显示加水印后的图像
cv2.imshow("Watermarked Image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

输出结果

执行上述代码后,会产生下面的输出窗口。

如何使用OpenCV Python在图像上创建水印?

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Python OpenCV