使用 OpenCV 对图像进行加水印
给大家安利一个免费且实用的 前端 刷题(面经大全)网站,👉点击跳转到网站。
**在本文中,我将带着大家使用 Python 和 OpenCV 对图像进行加水印。水印有意在图像上留下文本/标志,很多博主会使用水印来保护图像的版权。使用水印我们可以确保图像的所有者是在图像上印制水印的人。**水印前的图片:
logo.png:
🌌 第 1 步:导入 OpenCV 并读取logo和要应用水印的图像
1 | # 使用 OpenCV 导入 cv2 的水印图像 |
💨 第 2步:计算两个图像的高度和宽度
计算两个图像的高度和宽度,并将它们保存到其他变量中。我们需要计算宽度和高度,因为我们要将水印放置在图像上的某个位置,为此,我们只需要知道徽标和图像的正确宽度和高度。
1 | # 计算logo的尺寸高度和宽度 |
在这里,我们使用了OpenCV 中的shape函数,它返回图像的高度和宽度的元组。
🚀 第 3 步:将水印放置在图像的中心
现在,我们将计算图像中心的坐标,因为我要将水印放置在图像的中心,你们也可以选择其他位置。
1 | # 计算中心计算中心的坐标,我们将在其中放置水印 |
🍺 第 4 步:使用 OpenCV 中的 addWeighted 函数
要为图像添加水印,我们将使用 OpenCV 中的 addWeighted 函数。首先,我们将提供要放置水印的目的地,然后将该目的地传递给带有图像和徽标的 addWeighted 函数。
语法: cv2.addWeighted(source1, alpha, source2, beta, gamma)
在我们的例子中,source1 是我们想要放置logo的图像,alpha 是logo的不透明度,source2 是logo本身,我们将相应地设置 beta为1,不透明度的 alpha 和 gamma分别为 1 和 0。
1 | # 给图片添加水印 |
🎨 第 5 步:显示结果并保存输出
之后,我们只是显示结果并保存输出。为了显示我们使用imshow 函数的输出并写入/保存图像,我们在两个函数中都使用imwrite 函数,首先我们必须提供文件名作为参数,然后是文件本身。cv2.waitKey(0) 用于等待直到用户按下 Esc 键,之后 cv2.destroyAllWindows 函数将关闭窗口。
1 | # displaying and saving image |
🛹 下面是完整的实现:
1 | # 使用 OpenCV 导入 cv2 的水印图像 |
输出:
🛬 wuhu ! 起飞 !
我已经写了很长一段时间的技术博客,并且主要通过CSDN发表,这是我的一篇 python 小程序教程。我喜欢通过文章分享技术与快乐。你可以访问我的博客: https://haiyong.blog.csdn.net/ 以了解更多信息。希望你们会喜欢!😊