原理上参考了这篇博客https://blog.csdn.net/m0_46555380/article/details/114301348

原博为C#写的,这里使用了Python,opencv-python的版本为3.4.2.16

#  参考:https://blog.csdn.net/m0_46555380/article/details/114301348
#  当一个像素为白色背景时, 能够显示出一个特定的颜色 x , 当黑色背景时, 显示出 y
#  设: 颜色 x 的亮度为 xc, 颜色 y 的亮度为 yc, 这个像素的亮度为 zc, 不透明度为 za, 则满足:
#  xc = za * zc + (1 - za)
#  yc = za * zc
#  最终:
#  zc = yc / za      za = yc - xc + 1
#  考虑 ARGB通道值为0 ~ 255
#  zc = yc / (za / 255) = yc * 255 / za
#  za = yc - xc + 255
#  需要满足条件  xc >= ycimport cv2def xc_max_than_yc(xc, yc, color_ratio=0.5):"""令 xc > yc"""threshold = 255 * color_ratioxc = (xc / 255) * (255 - threshold) + thresholdyc = (yc / 255) * thresholdreturn xc, ycdef create_Mtank(white, black):"""生成幻影坦克,条件是白底图的每个像素值大于黑底图的每个像素值"""za = black - white + 255zc = black.copy()idx = black != 0zc[idx] = black[idx] * 255 / za[idx]img = cv2.merge((zc, zc, zc, za))return imgwhite_path = "./img/1.jpg"  # 白底图
black_path = "./img/2.jpg"  # 黑底图
img_false = cv2.imread(white_path, 0)
img_true = cv2.imread(black_path, 0)
x, y = img_true.shape
img_false = cv2.resize(img_false, (y, x))
xc, yc = xc_max_than_yc(img_false, img_true)
cv2.imwrite("result.png", create_Mtank(xc, yc))

Opencv-python生成幻影坦克相关推荐

  1. 写了个手机生成幻影坦克的APP——幻影坦克工厂

    写了个手机生成幻影坦克的APP--幻影坦克工厂 前几天在B站看到个视频讲幻影坦克原理的,看了一下好像还没有这种手机APP,大家都是用Python写的,感觉很不方便啊,于是一时兴起学了学Android开 ...

  2. Python - 批量生成幻影坦克图片

    目录 一.准备图片 二.Python+PIL代码实现过程 三.完整代码文件 说到幻影坦克,我就想起红色警戒里的-- 幻影坦克(Mirage Tank),<红色警戒2>以及<尤里的复仇 ...

  3. python批量生成图片并保存_Python批量生成幻影坦克图片实例代码

    前言 说到幻影坦克,我就想起红色警戒里的-- 幻影坦克(Mirage Tank),<红色警戒2>以及<尤里的复仇>中盟军的一款伪装坦克,盟军王牌坦克之一.是爱因斯坦在德国黑森林 ...

  4. python实现“幻影坦克”效果(点开图片是隐藏的另一张图)【详解】

    开篇先附上实验成果.下图点击后会显示另一张图片,若不能正常显示,请另存到本地后,用QQ发送消息后打开,手机QQ效果最佳(具体原因后面会解释).        下面我们先从原理说起,在PS中有三种算法如 ...

  5. opencv python 生成画布_用Python做自己的2020专属Flag动图

    2020年的开头并不顺利,有不少朋友希望能够重启2020.然而时光不可倒流,我们都应该学会积极的向前看. 我们可以给自己的2020年立下Flag,或者说给自己在这剩下的11个月里定下小目标,并不断为之 ...

  6. opencv python 生成画布_第16章 坚持一百秒(《Python趣味创意编程》教学视频)

    (图书介绍:童晶:<Python趣味创意编程>新书预告) 本章我们将实现坚持一百秒的游戏,玩家通过移动人脸控制飞碟躲避越来越多的反弹子弹,效果如图所示.首先利用面向对象的知识,实现了一个鼠 ...

  7. 基于OpenCV实现的灰度图幻影坦克

    对于png透明图片,在QQ,贴吧等平台上,看缩略图时默认是以白色为背景,而点开看原图时默认是以黑色为背景,基于此显示逻辑可以实现一种图像,看缩略图时是表图,看原图时是里图,这就是幻影坦克. 基于图像线 ...

  8. 使用OpenCV和Python生成视频条形码

    使用OpenCV和Python生成视频条形码 1. 效果图 2. 原理 2.1 步骤 2.2 项目结构 3. 源码 参考 这篇博客将演示如何使用Python + OpenCV生成视频条形码. 生成视频 ...

  9. python可视化执行幻影坦克

    from tkinter import *#导入tkinter from tkinter.filedialog import * import sys #sys模块包含了与Python解释器和它的环境 ...

最新文章

  1. Python 四大基本语法
  2. 算法----删除链表中的节点(Java)
  3. ActiveMQ 的客户端选项
  4. 线性期望(BUPT2015校赛.F)
  5. 高压断路器故障诊断的相关方法
  6. POJ1273 裸裸的网络流
  7. java char character_Java char 与 Character
  8. MATLAB 不能保存变量问题及解决办法
  9. 自动适配autolayout
  10. 真倒霉,前不久分區表錯誤把我數據全部搞沒了
  11. 新一代工业系统集成控制软件平台—CODESYS
  12. 骁龙888打开“新象限” ,专业相机和游戏机直呼不讲武德
  13. 辐射能量、辐照度、辐射亮度
  14. c语言随机迷宫生成,程序自动生成迷宫
  15. 11个非常炫酷的网页样式特效【附实现代码】
  16. UE4_虚幻引擎4多人联机基础知识和客户端服务器通信机制详解
  17. 电商平台开发你需要注意下面的几点!
  18. 全年精彩内容大盘点 | 虎年贺岁特辑
  19. [keil5]从AC5到AC6的转变
  20. https网络编程——DNS域名解析获取IP地址

热门文章

  1. 随笔:教育、兴趣 与 职业
  2. image_thumb
  3. 创业全攻略:从零到开具第一张发票
  4. Delphi 10.3.1 RIO官方下载
  5. 关于J2EE,J2SE,J2ME
  6. 在网上购物竟然也能和Python扯上关系!电脑上用自己写的程序购物?别说,QT实现还真挺简单(Python如何利用QT制作电脑的手机版拼多多)
  7. (转)Java开源CMS系统 一
  8. 机器学习与深度学习到底有什么区别
  9. CVPR2022:将X光图片用于垃圾分割,探索大规模智能垃圾分类
  10. c语言中哪个是错误的常量,以下所列的C语言常量中,错误的是__________ 。