前言

隐藏图片就是在白色背景和黑色背景显示出不同的图片,之前qq可以显示,现在好像也不行了,原因就是原来的qq,在发出来默认是白色背景,而点开后是黑色背景。但是这个原理还是挺有意思的,所以简单的研究了一下

隐藏图原理

参考文章
原理参考文章里面说的很详细了,这里不多赘述。
一个要注意的一点是,在黑色背景显示的图片需要进行一下处理,否者效果及其不好,就是降低对比度,并提高亮度(为了在白色背景下隐藏的更好),这一点也是文章没有提到的。

代码实现

import time
import cv2
import numpy as np
import sysWimg = cv2.imread('1.jpg') #白色背景显示的图片 Wimg为white-img缩写
Wimg = cv2.cvtColor(Wimg,cv2.COLOR_BGR2GRAY)
Wimg = cv2.cvtColor(Wimg,cv2.COLOR_GRAY2BGRA)Bimg = cv2.imread('2.jpg') #黑色背景显示的图片 Bimg为black-img缩写
Bimg = cv2.cvtColor(Bimg,cv2.COLOR_BGR2GRAY)
Bimg = cv2.cvtColor(Bimg,cv2.COLOR_GRAY2BGRA)h1,w1 = Wimg.shape[:2]
h2,w2 = Bimg.shape[:2]
h = min([h1,h2])
w = min([w1,w2])
# 奇数列行,为了交错排列两张图片
if h % 2 == 0:h -= 1
if w % 2 == 0:w -= 1# 降低对比度,并提高亮度
Bimg = cv2.addWeighted(Bimg,0.3,0,0,100)Wimg = cv2.resize(Wimg,(w,h))
Bimg = cv2.resize(Bimg,(w,h))
Rimg = np.zeros([h,w,4],dtype=np.uint8)
flag = True
print(h,w)
for y in range(h):for x in range(w):if flag:# 显示白色图片Rimg[y,x] = Wimg[y,x]*0.3Rimg[y,x,3] = 255-Wimg[y,x,0]flag = Falseelse:# 显示黑色图片Rimg[y,x] = Bimg[y,x]Rimg[y,x,3] = Bimg[y,x,0]flag = Truecv2.imwrite('result.png',Rimg, [cv2.IMWRITE_PNG_COMPRESSION, 0])

效果查看

我这里直接用 gimp 新建图层来看效果,这样效果也会更加明显。
白色背景显示的图片:

黑色背景显示的图片:

python opencv制作隐藏图片相关推荐

  1. 教你如何利用灰度图透明效果制作隐藏图片.Part2

    前言 文章http://blog.csdn.net/chenzhuyu/article/details/52483394 中介绍了利用像素交替+蒙版的方法制作隐藏图片 实现在QQ界面中,预览与查看显示 ...

  2. python+opencv将表格图片按照表格框线分割、识别

    如下小程序为使用python+opencv将表格图片,按照表格进行分割,并识别分割后的子图片中的文字,希望对需要的小伙伴有一些些帮助.具体的实现见如下代码. # -*- coding: utf-8 - ...

  3. python opencv 如何给图片添加文字?cv2.putText() PIL

    参考文章1:python如何在图片上添加文字(中文和英文)Python在图片上添加文字的两种方法:OpenCV和PIL 参考文章2:python之------如何在图片上面添加文字(多种类型的文字)[ ...

  4. Android实现 制作隐藏图片效果 (幻影坦克)

    在贴吧上经常有吧友发一些图片,点开之后就变成另一张图片,当时觉得很神奇,又不是gif,怎么会变呢,有一日逛贴吧,看到了这个帖子http://tieba.baidu.com/p/5306081495,里 ...

  5. 教你如何利用灰度图透明效果制作隐藏图片.part1

    #更新 使用深色图片简单实现隐藏图片二不需要网格抠图 http://blog.csdn.net/chenzhuyu/article/details/54766757 #效果图: 在QQ聊天的时候,图片 ...

  6. python与人工智能课程设计_人工智能+机器人入门与实战:用树莓派+Python+OpenCV制作计算机视觉机器人...

    第 1 章 走近人工智能 1 1.1 初识人工智能 2 1.1.1 人工智能是什么 2 1.1.2 人工智能的发展历程 2 1.1.3 人工智能的应用现状 4 1.2 机器人世界 5 1.2.1 机器 ...

  7. python+opencv人脸识别-图片处理+代码

    首先安装opencv: cmd 然后输入:install opencv-python 刚接触人脸识别,正在学习:代码是从绘制图片到人脸识别,里面的jpg图片找个有一个人脸图片就行,放在项目的根目录下就 ...

  8. python opencv轻松去图片水印

    背景 最近有一个需要为图片去水印的需求,于是各种折腾开始. 背景了解图片标准 图片使用RGB编码,RGB色彩模式是工业界的一种颜色标准,是通过对红(R).绿(G).蓝(B)三个颜色通道的变化以及它们相 ...

  9. Python+OpenCV批量给图片加噪声

    利用python和opencv批量给图像加噪声(椒盐噪声.高斯噪声.随机噪声) 导入头文件 import os import cv2 import numpy as np import random ...

最新文章

  1. BCH比特币现金有何魅力,让“比特币耶稣”和矿工们都看涨买入?
  2. 滤波器电路的Python仿真
  3. 白话Elasticsearch05- 结构化搜索之使用range query来进行范围过滤
  4. 96秒100亿!如何抗住双11高并发流量?
  5. NVIDIA DLI 深度学习培训 | 北京站年后即将开班
  6. 下载丨6月数据库技术通讯:不规范SQL引发大量TX锁
  7. python dict 选择第一个、最后一个元素的key或value
  8. 测试方法之JUnit单元测试
  9. 火星开发板_数据科学家来自火星,软件开发人员来自金星
  10. 大数据Hadoop原理介绍+安装+实战操作(HDFS+YARN+MapReduce)
  11. 【20220412】文献翻译4:交互中的手势和语言概述
  12. 最长公共子序列的问题
  13. JavaScript保留小数位数代码
  14. Super Jumper:一个2DOpenGL ES游戏
  15. linux命令学习一 :touch和mkdir 创建文件和文件夹
  16. win7系统屏蔽全/半角切换问题
  17. java实现生产者消费者模式
  18. VS2017 Git failed with a fatal error. Git failed with a fatal error. Need to specify how to reconcil
  19. excel比较两个表中数据 提取相同列 合并到同一张表中
  20. MyBatisPlus(个人笔记)

热门文章

  1. compass项目配置文件config.rb
  2. 四十岁以后,如何做夫妻?
  3. 高德地图的测距api应用记录
  4. Docker错误合集
  5. 首次用jwt做token
  6. Win10-1809 离线安装 .net framework 3.5
  7. Hibernate的Disjunction和Conjunction
  8. LabVIEW辨识颜色小游戏
  9. Windows 2016 server NVIDIA cuda toolkit11.3 pytorch-gpu 踩坑教程
  10. 密苏里大学理工学院计算机,密苏里大学理工学院