opencv学习笔记及复习(四)物体追踪及人体肤色追踪
一、BGR颜色空间
在opencv中,硬件所使用的颜色顺序为BGR,而非RGB,虽然排序有所不同,但是在进行图像操作的时候会有很大的区别,BGR颜色空间分别对应蓝、绿、红;这三种颜色的排列组合可以组成人眼所看到的所有颜色,如图2.1:
二、HSV颜色空间
HSV分别对应色度、饱和度、亮度,HSV颜色空间数据分明,适合计算机处理数据,HSV是一种比较直观的颜色模型,所以在许多图像编辑工具中应用比较广泛。因此,一般在做图像处理的时候,都会把BGR转化成HSV[3]。其表示如图2.2:
三、API:cv.cvtColor 色彩空间转化API
第一个参数frame是图片数据,第二个参数为转化参数有
cv.COLOR_BGR2GRAY:BGR转灰色空间,就是灰白图片
cv.COLOR_BGR2HSV:BGR转HSV
cv.COLOR_BGR2YUV :BGR转YUV色彩空间
这些参数中把其中颜色空间的顺序调换就可以转回BGR,如cv.COLOR_GRAY2BGR
hsv = cv.cvtColor(frame, cv.COLOR_BGR2HSV)
四、颜色追踪(物体追踪)
1.定义掩摸(面具)mask
HSV颜色取值范围表
黑 |
灰 |
白 |
红 |
橙 |
黄 |
绿 |
青 |
蓝 |
||
hmin |
0 |
0 |
0 |
0 |
156 |
11 |
26 |
35 |
78 |
100 |
hmax |
180 |
180 |
180 |
10 |
180 |
25 |
34 |
77 |
99 |
124 |
smin |
0 |
0 |
0 |
43 |
43 |
43 |
43 |
43 |
43 |
43 |
smax |
255 |
43 |
30 |
255 |
255 |
255 |
255 |
255 |
255 |
255 |
vmin |
0 |
46 |
221 |
46 |
46 |
46 |
46 |
46 |
46 |
46 |
vmax |
46 |
220 |
255 |
255 |
255 |
255 |
255 |
255 |
255 |
255 |
mask = cv.inRange(hsv, lowerb = lower_hsv, upperb = upper_hsv)
cv.inRange:确定颜色取值的范围(下面是红色的HSV颜色范围取值)
lower_hsv = np.array([156, 43, 46]) #定义hsv空间的三个最低值
upper_hsv = np.array([180, 255, 255]) #定义hsv空间的三个最高值
cv.bitwise_and:逻辑与,就是把他里面所有的参数都相与
cv.bitwise_and(frame, frame, mask=mask)
之后调用摄像头只直接显示就可以了,完整代码如下
def extrace_object_demo():capture = cv.VideoCapture(0)while(True):ret, frame = capture.read()if ret == False:breakhsv = cv.cvtColor(frame, cv.COLOR_BGR2HSV)lower_hsv = np.array([156, 43, 46]) #定义hsv空间的三个最低值upper_hsv = np.array([180, 255, 255]) #定义hsv空间的三个最高值mask = cv.inRange(hsv, lowerb = lower_hsv, upperb = upper_hsv) #inRange取颜色范围,,现取红色区域cv.imshow("video", hsv) #显示hsv图像red_mask = cv.bitwise_and(frame, frame, mask=mask) #使用逻辑与取出红色区域cv.imshow("new video", red_mask) #显示图像中的红色区域c = cv.waitKey(40)if c == 27:break
extrace_object_demo()
cv.waitKey(0)
cv.destroyAllWindows()
实验结果(我这里不使用摄像头了,我网上找了一个穿红衣服跳舞的视频)
视频我放在根目录下,只是把摄像头0改成了视频路径,更改的代码
capture = cv.VideoCapture('3.mkv')
五、肤色追踪(人脸检测)
黄色人体肤色范围
lower_red=np.array([0,30,60])
upper_red=np.array([20,150,255])
然后把这些数值带入上面的代码就可以了
实验结果就不放出来了,人长得丑,自己实验就知道了。
opencv学习笔记及复习(四)物体追踪及人体肤色追踪相关推荐
- OpenCV学习笔记(十四):重映射:remap( )
OpenCV学习笔记(十四):重映射:remap( ) 图像的坐标映射是通过原图像与目标图像之间建立一种映射关系,这种映射关系有两种,一种是计算原图像任意像素在映射后图像的坐标位置,另一种是计算变换后 ...
- 【OpenCV 学习笔记】第四章: 色彩空间类型转换
第四章: 色彩空间类型转换 为什么有色彩空间这个概念? 世界本是无颜色的,我们人类看到的各种有色光只是特定波长的电磁波能够刺激人眼的锥体细胞,进而在人脑中形成颜色信号而已,实际上电磁波的波长域是非常广 ...
- opencv学习笔记及复习(二)读取摄像头以及获取图片类型
一.补充一下: 之前的图片是放在和代码一样的目录下,简称根目录,这样就可以直接输入所要读取的图片或者视频,无需指定其他路径,若要指定其他路径,最好别有中文. 二.导入包,numpy大概是用于定义数据类 ...
- opencv 学习笔记(十四) grabCut
grabCut 前言 一.grabCut函数 二.compare函数 三.代码 前言 grabCut算法利用了图像中的纹理(颜色)信息和边界(反差)信息,只用少量的用户交互操作,即可得到比较好的分割结 ...
- OpenCV学习笔记(十一)(十二)(十三)(十四)(十五)
OpenCV学习笔记(十一)--谈谈像素的类型和对Templates的限制使用 Templates是c++的一个很强大的特征,可以是数据结构更加安全高效.但也会增加编译时间和代码的长度,当函数被频繁调 ...
- Kinect开发学习笔记之(四)提取颜色数据并用OpenCV显示
Kinect开发学习笔记之(四)提取颜色数据并用OpenCV显示 zouxy09@qq.com http://blog.csdn.net/zouxy09 我的Kinect开发平台是: Win7 x86 ...
- OpenCV学习笔记(四十六)——FAST特征点检测features2D OpenCV学习笔记(四十七)——VideoWriter生成视频流highgui OpenCV学习笔记(四十八)——PCA算
OpenCV学习笔记(四十六)--FAST特征点检测features2D 特征点检测和匹配是计算机视觉中一个很有用的技术.在物体检测,视觉跟踪,三维常年关键等领域都有很广泛的应用.这一次先介绍特征点检 ...
- OpenCV学习笔记(一)(二)(三)(四)(五)
OpenCV学习笔记(一) 决心开始研究OpenCV.闲言少叙,sourceforge网站最近的版本是2011年8月的OpenCV2.3.1,下载安装,我这里使用的开发环境是vs2008,网上搜了一下 ...
- OpenCV学习笔记(四十一)——再看基础数据结构core OpenCV学习笔记(四十二)——Mat数据操作之普通青年、文艺青年、暴力青年 OpenCV学习笔记(四十三)——存取像素值操作汇总co
OpenCV学习笔记(四十一)--再看基础数据结构core 记得我在OpenCV学习笔记(四)--新版本的数据结构core里面讲过新版本的数据结构了,可是我再看这部分的时候,我发现我当时实在是看得太马 ...
最新文章
- 关于bcache的一些事情
- python读取excel-Python读取Excel表格
- nyoj 284 坦克大战 (优先队列)
- SAP Analytics Cloud里Exception Aggregation Type的设置
- oracle取第一位,Oracle中的substr()函数和INSTR()函数
- php rpoplpush,Redis Rpoplpush 命令
- MEncoder的基础用法—6.7. 媒体流复制
- 传统的AD域管理存在哪些缺点?
- 计算机网络的产生与发展可分为哪四个阶段,计算机网络形成与发展大致分为如下4个阶段...
- python从键盘输入一个数、计算出大于n的最小素数_请问,可以帮忙做下这个题吗?--从键盘输入一个数,求大于该数的最小素数....
- EPLAN之设备编号
- 解决tomcat报limt 字节长度限制 tomcat web.xml里配置mappedfile
- Loom插件怎么用?Loom录屏插件使用教程
- Android与GNU体系
- 常用CASE工具介绍 ZZ
- el-element布局控件layout中的el-row和el-col
- 1506_TC275参考手册阅读笔记_ED芯片
- 通达信程序化交易接口的设计方案
- win10 node-sass安装python环境报错问题处理(自测可用版)
- centos7安装MySQL8以及各种管理工具
热门文章
- xmanager5链接linux配置,使用Xmanager连接CentOS 5.5
- 几个简单的论文下载方法
- 第7章第33节:五图排版:错落有致的波浪式排版 [PowerPoint精美幻灯片实战教程]
- EDM邮件群发:群发邮件不进垃圾箱的独家秘笈
- iOS播放器、Flutter高仿书旗小说、卡片动画、二维码扫码、菜单弹窗效果等源码
- ios xcode 给ipa包签名
- Kubernetes Dashboard 设置用户密码登陆
- ROC/AUC、精准率、召回率、真正率,假正率等指标含义,学习笔记
- C/C++中的日期和时间
- 数据传输方式串行快于并行