摘要:水印有意在图像上留下文本标志,很多博主会使用水印来保护图像的版权。使用水印我们可以确保图像的所有者是在图像上印制水印的人。全书分为篇,共章。理论和实践相结合。
? 作者主页:海拥
? 作者简介:?CSDN全栈领域优质创作者、?HDZ核心组成员、?蝉联C站周榜前十
? 粉丝福利:进粉丝群每周送四本书,每月送各种小礼品(搪瓷杯、抱枕、鼠标垫、马克杯等)
直接跳到末尾 去评论区领书
在本文中,我将带着大家使用 Python 和 OpenCV 对图像进行加水印。水印有意在图像上留下文本/标志,很多博主会使用水印来保护图像的版权。使用水印我们可以确保图像的所有者是在图像上印制水印的人。
水印前的图片:
logo.png:
# 使用 OpenCV 导入 cv2 的水印图像import cv2# 导入我们将要使用的logologo = cv2.imread("logo.png")# 导入我们要应用水印的图像img = cv2.imread("haiyong.png")
计算两个图像的高度和宽度,并将它们保存到其他变量中。我们需要计算宽度和高度,因为我们要将水印放置在图像上的某个位置,为此,我们只需要知道徽标和图像的正确宽度和高度。
# 计算logo的尺寸高度和宽度h_logo, w_logo, _ = logo.shape# 图像的高度和宽度h_img, w_img, _ = img.shape
在这里,我们使用了OpenCV 中的shape函数,它返回图像的高度和宽度的元组。
现在,我们将计算图像中心的坐标,因为我要将水印放置在图像的中心,你们也可以选择其他位置。
# 计算中心计算中心的坐标,我们将在其中放置水印center_y = int(h_img/2)center_x = int(w_img/2)# 从上、下、右、左计算top_y = center_y - int(h_logo/2)bottom_y = top_y + h_logoright_x = left_x + w_logoleft_x = center_x - int(w_logo/2)
要为图像添加水印,我们将使用 OpenCV 中的 addWeighted 函数。首先,我们将提供要放置水印的目的地,然后将该目的地传递给带有图像和徽标的 addWeighted 函数。
语法: cv2.addWeighted(source1, alpha, source2, beta, gamma)
在我们的例子中,source1 是我们想要放置logo的图像,alpha 是logo的不透明度,source2 是logo本身,我们将相应地设置 beta为1,不透明度的 alpha 和 gamma分别为 1 和 0。
# 给图片添加水印destination = img[top_y:bottom_y, left_x:right_x]result = cv2.addWeighted(destination, 1, logo, 1, 0)
之后,我们只是显示结果并保存输出。为了显示我们使用imshow 函数的输出并写入/保存图像,我们在两个函数中都使用imwrite 函数,首先我们必须提供文件名作为参数,然后是文件本身。cv2.waitKey(0) 用于等待直到用户按下 Esc 键,之后 cv2.destroyAllWindows 函数将关闭窗口。
# displaying and saving imageimg[top_y:bottom_y, left_x:right_x] = resultcv2.imwrite("watermarked.jpg", img)cv2.imshow("Watermarked Image", img)cv2.waitKey(0)cv2.destroyAllWindows()
# 使用 OpenCV 导入 cv2 的水印图像import cv2# 导入我们将要使用的logologo = cv2.imread("logo.png")# 导入我们要应用水印的图像img = cv2.imread("haiyong.png")# 计算logo的尺寸高度和宽度h_logo, w_logo, _ = logo.shape# 图像的高度和宽度h_img, w_img, _ = img.shape# 计算中心计算中心的坐标,我们将在其中放置水印center_y = int(h_img/2)center_x = int(w_img/2)# 从上、下、右、左计算top_y = center_y - int(h_logo/2)left_x = center_x - int(w_logo/2)bottom_y = top_y + h_logoright_x = left_x + w_logo# 给图片添加水印destination = img[top_y:bottom_y, left_x:right_x]result = cv2.addWeighted(destination, 1, logo, 1, 0)# 显示和保存图像img[top_y:bottom_y, left_x:right_x] = resultcv2.imwrite("watermarked.jpg", img)cv2.imshow("Watermarked Image", img)cv2.waitKey(0)cv2.destroyAllWindows()
输出:
? 欢迎大家在评论区提出意见和建议!(抽两位幸运儿送书,实物图如下)?
《人工智能数学基础》
简介:本书以零基础讲解为宗旨,面向学习数据科学与人工智能的读者,通俗地讲解每一个知识点,旨在帮助读者快速打下数学基础。
全书分为 4 篇,共 17 章。其中第 1 篇为数学知识基础篇,主要讲述了高等数学基础、微积分、泰勒公式与拉格朗日乘子法;第 2 篇为数学知识核心篇,主要讲述了线性代数基础、特征值与矩阵分解、概率论基础、随机变量与概率估计;
第 3 篇为数学知识提高篇,主要讲述了数据科学的几种分布、核函数变换、熵与激活函数;第 4 篇为数学知识应用篇,主要讲述了回归分析、假设检验、相关分析、方差分析、聚类分析、贝叶斯分析等内容。
本书适合准备从事数据科学与人工智能相关行业的读者。
优点:
? 1.零基础也能快速入门。本书从最基础的高等数学基础讲起,由浅入深,层层递进,在巩固固有知识的同时深入讲解人工智能的算法原理。
? 2.全新视角介绍数学知识。采用计算机程序模拟数学推论的介绍方法,使数学知识更为清晰易懂,更容易让初学者深入理解数学定理、公式的意义,从而激发起读者的学习兴趣。
? 3.理论和实践相结合。每章最后提供根据所在章的理论知识点精心设计的“综合性实例”,读者可以通过综合案例进行实践操作,为以后的算法学习奠定基础。
? 4.大量范例源码+习题答案,为学习排忧解难。本书所有示例都有清晰完整的源码,每章之后设有习题并配套题目答案,讲解清晰,解决读者在学习中的所有困惑。
也有不想抽奖自己买的同学可以参考下面的链接
京东自营购买链接:
《人工智能数学基础 中国人工智能学会副理事长力荐教材》(唐宇迪,等) - 京东图书
当当自营购买链接:
? 注意:
大家点赞关注,三天后也就是 10月1日 从评论区留言的同学中抽取两位送书
? 行业资料:精品PPT模板几千套,简历模板一千多套
? 面试题库:Java核心知识点大全和面试真题资料
? 学习资料:2300套PHP建站源码,微信小程序入门资料,Python全集(400集)
如果中奖了联系不上则视为放弃,可以从下方公众号里找到作者的联系方式,以后每周都会送四本书,后面送书力度还会加大,一年送几百上千本不是问题,回复【进群】领书不迷路,回复【资源】获取上面的资料??????
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/121516.html
...的图形表示以及使用内置函数的动画。 直接跳到末尾 去评论区领书 ? 在 Python 中创建条形图追赶动画(评论区送书) ? 方法一:使用 pause() 函数? 方法二:使用 FuncAnimation() 函数? 线性图动画: ? Python 中的条形图追赶动画? Pytho...
...的一个系列,有非常多好玩的文章) 爬取网易云音乐的评论后,竟有这种发现!Python 分析《羞羞的铁拳》电影观众评论ython 爬取猫眼千页评论,分析《狄仁杰之四大天王》是否值得一看《邪不压正》评分持续走低,上万条网友...
...果: 看起来不咋好看,但是还算稳定。 3.手机设置 手机使用软件"蓝牙串口"软件控制: 4.系统的设计 我想实现一个用手机控制树莓派上的一些服务的系统,并且可以实现自定义命令,系统中的每一个选项由json 配置文件决定...
...从零开始学习Python。 如对文章内容存在疑问,可在博客评论区留言,或关注:老猿Python 微信公号发消息咨询,可通过扫博客左边的二维码加微信公众号。 写博不易,敬请支持: 如果阅读本文于您有所获,敬请点赞、评论、收...
...ython。 如对文章内容存在疑问或需要相关资料,可在博客评论区留言,或关注:老猿Python 微信公号发消息咨询,可通过扫描博客左边的二维码加微信公众号。 写博不易,敬请支持: 如果阅读本文于您有所获,敬请点赞、评论、...
阅读 893·2021-11-16 11:45
阅读 1854·2021-11-02 14:40
阅读 3214·2021-09-29 09:34
阅读 1266·2021-09-29 09:32
阅读 3315·2021-09-24 10:25
阅读 2779·2019-08-30 12:45
阅读 864·2019-08-29 18:39
阅读 2191·2019-08-29 12:32