opencv-隐身术

目     录

一、准备工作:

 二、大致思路

三、代码实现

1、小试牛刀

2、图片隐身

3、摄像头实时隐身

4、使用Qt组件

四、总结


一、准备工作:

opencv库和PyQt5库

一张背景图和同一背景人举着红布的图

 二、大致思路

要实现的效果如下:

 图片隐身思路:

 背景图

 手持红布图

(1)先将手持红布图片格式转化为方便操作的hsv格式

(2)用背景图扣出纯色板。

(3)再根据掩膜取反,用红布背景扣出除了红布外的背景。

(4)将两张图片像素做与运算,即两张照片拼在一起

摄像头实时隐身思路:

(1)打开摄像头,然后最先读取到的图片充当背景。

(2)后面人进入摄像头范围手举着红布(红色物体),代入刚刚的图片隐身思路。

使用Qt组件:

(1)将视频放入窗口。

(2)通过按钮控制实时隐身视频。

人脸识别那篇文章详细讲解了所需的组件,此处不再赘述。

三、代码实现

1、小试牛刀

先读取一张有红色背景的图片

​
import cv2 as cv


image = cv.imread("image.jpg")  # 读取图片
cv.imshow("image", image)  # 展示图片

cv.waitKey(0)   # 参数0为等待用户操作

运行结果如下:

将图片改为hsv格式

imgHSV = cv.cvtColor(image, cv.COLOR_BGR2HSV)  # 改为hsv格式

运行结果如下:

 利用这个hsv颜色空间扣出红色背景图,发现红色有两栏,那我们分别扣出两栏,再直接相加:

mask1 = cv.inRange(imgHSV, (0, 43, 46), (10, 255, 255))
mask2 = cv.inRange(imgHSV, (156, 43, 46), (180, 255, 255))
mask = mask1 + mask2

 运行结果如下:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值