python opencv随机位置添加水印图

需求:一张水印图A,一张待添加水印的图B,需要将水印A随机添加到B图上,进行线性加深操作,最后resize到指定大小
实现效果(背景图来自网络,侵删):

水印图A,白色背景,黑色字

具体实现代码:

import randomfrom skimage import ioimport numpy as np
from PIL import Image
from torchvision.transforms import transformscolor_aug = transforms.ColorJitter(brightness=0, contrast=0, saturation=0, hue=0)def Linear_burn(img_1, img_2):img = img_1 + img_2 - 1a = np.where(img <= 0, img_2, img)# a = np.where(a == 0, 1, a)mask_1 = img < 0img = img * (1 - mask_1)# img = (img_2 - img) + img_1 - 1return img, adef add_wm(img_1, img_2, new_w=1024, new_h=1024):img_1 = io.imread(img_1)if isinstance(img_2, str):img_2 = io.imread(img_2)img_2 = np.asarray(Image.fromarray(img_2).resize((1024, 1024)))img_1 = img_1 / 255.0img_2 = img_2 / 255.0# Image.fromarray(np.uint8(img_1 * 255)).show('a')new_img = np.full((new_w, new_h, 3), 255)new_img = new_img / 255.0# Image.fromarray(np.uint8(new_img * 255)).show('a')i1w, i1h = img_1.shape[1], img_1.shape[0]rnd_w = random.randint(0, new_w - i1w)rnd_h = random.randint(0, new_h - i1h)print(rnd_w, rnd_h)img_1 = color_aug(Image.fromarray(np.uint8(img_1 * 255)))new_img[rnd_h:rnd_h + i1h, rnd_w:rnd_w + i1w] = np.asarray(img_1) / 255.0print(new_img.shape)# Image.fromarray(np.uint8(new_img * 255)).show('a')merge_img, a = Linear_burn(new_img, img_2)Image.fromarray(np.uint8(merge_img * 255)).show('a')# Image.fromarray(np.uint8(a * 255)).show('a')return merge_imgif __name__ == '__main__':img_1 = '/home/siyi/Downloads/watermark (1).png'img_2 = '/home/siyi/Pictures/01570a5d390482a8012187f478c722.jpg@1280w_1l_2o_100sh.jpg'merge_img = add_wm(img_1, img_2)

如有错误请指正!

python opencv随机位置添加水印图相关推荐

  1. python opencv图像拼接 多张图相互有重复部分

    import cv2 import math import os# 文件夹所有图片 path = "Images/ROIRun" images = [] for filename ...

  2. 使用python opencv批量对贴图进行除透明边并压缩

    import glob import cv2def access_pixels(file, frame):print(frame.shape) # shape内包含三个元素:按顺序为高.宽.通道数he ...

  3. python使用matplotlib可视化线图(line plot)、在可视化图像中的指定位置添加横线(add horizontal line in matplotlib plot)

    python使用matplotlib可视化线图(line plot).在可视化图像中的指定位置添加横线(add horizontal line in matplotlib plot) 目录

  4. python opencv 彩色图非局部平均去噪

    python opencv 彩色图非局部平均去噪 代码: import cv2 import numpy as np # 灰度图像去噪 def MeansDenoising(img,N,h,templ ...

  5. python opencv 灰度图非局部平均去噪

    python opencv 灰度图非局部平均去噪 代码: import cv2 import numpy as np # 灰度图像去噪 def MeansDenoising(img,h,templat ...

  6. python Opencv和pyautogui实现自动识图点击

    python Opencv和pyautogui实现自动识图点击 1.导入python及其他模块 匹配类是上一章博客内容,pyautogui自带的图片匹配效果不是很理想.就使用Opencv的图片匹配来实 ...

  7. Android实现无序树形结构图,类似思维导图和级联分层图(无序,随机位置)

    参考文章: 利用递归算法.堆栈打造一个android可擦除思维导图 用SurfaceView实现级联分层图(粗略篇) 效果图打头阵: 这些和亲戚关系图谱,或者思维导图类似,最近公司的医疗项目也用到了这 ...

  8. python opencv cv2.cvtColor()方法(将图像从一种颜色空间转换为另一种颜色空间)(转换成灰度图)

    def cvtColor(src, code, dst=None, dstCn=None): # real signature unknown; restored from __doc__" ...

  9. OpenCV技巧 | 二值图孔洞填充方法与实现(附Python/C++源码)

    点击上方"OpenCV与AI深度学习",选择加"星标"或"置顶" 重磅干货,第一时间送达 导读 本文主要介绍使用OpenCV对二值图做孔洞填 ...

最新文章

  1. 用css3简单实现进度条
  2. 树形DP题目。。。转载
  3. 从技术角度聊聊,短视频为何让人停不下来?
  4. win10+tensorflow CPU 部署CTPN环境
  5. HDU-4675 GCD of Sequence 数学
  6. 我终于知道公司前端为啥不加班了…
  7. Android 12 重磅亮相!阔别 2 年的 Google I/O 开发者大会回来了
  8. 区块链开发(一)搭建基于以太坊go-ethereum的私有链环境
  9. 上海第二工业大学计算机应用技术专业,2019上海第二工业大学专业排名
  10. 互联网思维到底是什么——移动浪潮下的新商业逻辑
  11. 从TMP文件恢复Word文件
  12. html选择本地文件视频并播放器,使HTML5视频播放器播放不同的文件(Make a HTML5 video player play a different file)...
  13. 原生video标签隐藏底部功能按钮
  14. css 实现弹框滚动条
  15. 隐马尔科夫模型一(概念理解)
  16. 重现CD情怀——飞利浦复古桌面音响臻选上市
  17. 【程序源代码】小程序最佳开发实践-租房小程序
  18. [转]NodeJS初探
  19. make:Windows安装make
  20. graphql_在GraphQL社区中发现很棒的女工程师

热门文章

  1. 塔罗牌第五张是什么牌_【塔罗牌教学】第六张牌:恋人
  2. Nevercenter CameraBag Pro照片滤镜软件 v2023.2.0
  3. 关于 virtio 的重要知识点总结
  4. 谈谈创业这点事 之 如何界定可行性
  5. 电脑双屏有一个黑屏_关于笔记本分屏但主副屏黑屏的解决办法
  6. atan2() 反正切函数,atan() 的增强版,能确定象限
  7. 物流管理和计算机那个专业好,家长眼中的专业与现实中的专业,形成鲜明对比,尴尬又现实...
  8. 公众号排名优化被动引流截流之关于公众号初始排名的那些事儿
  9. 【HDU】6072 Logic Chain - kosaraju+bitset
  10. [原创]论当代大学生之劣根性