python opencv制作隐藏图片
前言
隐藏图片就是在白色背景和黑色背景显示出不同的图片,之前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制作隐藏图片相关推荐
- 教你如何利用灰度图透明效果制作隐藏图片.Part2
前言 文章http://blog.csdn.net/chenzhuyu/article/details/52483394 中介绍了利用像素交替+蒙版的方法制作隐藏图片 实现在QQ界面中,预览与查看显示 ...
- python+opencv将表格图片按照表格框线分割、识别
如下小程序为使用python+opencv将表格图片,按照表格进行分割,并识别分割后的子图片中的文字,希望对需要的小伙伴有一些些帮助.具体的实现见如下代码. # -*- coding: utf-8 - ...
- python opencv 如何给图片添加文字?cv2.putText() PIL
参考文章1:python如何在图片上添加文字(中文和英文)Python在图片上添加文字的两种方法:OpenCV和PIL 参考文章2:python之------如何在图片上面添加文字(多种类型的文字)[ ...
- Android实现 制作隐藏图片效果 (幻影坦克)
在贴吧上经常有吧友发一些图片,点开之后就变成另一张图片,当时觉得很神奇,又不是gif,怎么会变呢,有一日逛贴吧,看到了这个帖子http://tieba.baidu.com/p/5306081495,里 ...
- 教你如何利用灰度图透明效果制作隐藏图片.part1
#更新 使用深色图片简单实现隐藏图片二不需要网格抠图 http://blog.csdn.net/chenzhuyu/article/details/54766757 #效果图: 在QQ聊天的时候,图片 ...
- 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 机器 ...
- python+opencv人脸识别-图片处理+代码
首先安装opencv: cmd 然后输入:install opencv-python 刚接触人脸识别,正在学习:代码是从绘制图片到人脸识别,里面的jpg图片找个有一个人脸图片就行,放在项目的根目录下就 ...
- python opencv轻松去图片水印
背景 最近有一个需要为图片去水印的需求,于是各种折腾开始. 背景了解图片标准 图片使用RGB编码,RGB色彩模式是工业界的一种颜色标准,是通过对红(R).绿(G).蓝(B)三个颜色通道的变化以及它们相 ...
- Python+OpenCV批量给图片加噪声
利用python和opencv批量给图像加噪声(椒盐噪声.高斯噪声.随机噪声) 导入头文件 import os import cv2 import numpy as np import random ...
最新文章
- BCH比特币现金有何魅力,让“比特币耶稣”和矿工们都看涨买入?
- 滤波器电路的Python仿真
- 白话Elasticsearch05- 结构化搜索之使用range query来进行范围过滤
- 96秒100亿!如何抗住双11高并发流量?
- NVIDIA DLI 深度学习培训 | 北京站年后即将开班
- 下载丨6月数据库技术通讯:不规范SQL引发大量TX锁
- python dict 选择第一个、最后一个元素的key或value
- 测试方法之JUnit单元测试
- 火星开发板_数据科学家来自火星,软件开发人员来自金星
- 大数据Hadoop原理介绍+安装+实战操作(HDFS+YARN+MapReduce)
- 【20220412】文献翻译4:交互中的手势和语言概述
- 最长公共子序列的问题
- JavaScript保留小数位数代码
- Super Jumper:一个2DOpenGL ES游戏
- linux命令学习一 :touch和mkdir 创建文件和文件夹
- win7系统屏蔽全/半角切换问题
- java实现生产者消费者模式
- VS2017 Git failed with a fatal error. Git failed with a fatal error. Need to specify how to reconcil
- excel比较两个表中数据 提取相同列 合并到同一张表中
- MyBatisPlus(个人笔记)