python实现超简单的视频对象提取功能


Posted in Python onJune 04, 2018

视频对象提取

与其说是视频对象提取,不如说是视频颜色提取,因为其本质还是使用了OpenCV的HSV颜色物体检测。下面话不多说了,来一起看看详细的介绍吧。

HSV介绍

HSV分别代表,色调(H:hue),饱和度(S:saturation),亮度(V:value),由A. R. Smith在1978年创建的一种颜色空间, 也称六角锥体模型(Hexcone Model);

色调(H:hue):用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。它们的补色是:黄色为60°,青色为180°,品红为300°;(OpenCV中H的取值范围为0~180,8bit存储时);

饱和度(S:saturation):取值范围为0~255,值越大,颜色越饱和;

亮度(V:value):取值范围为0(黑色)~255(白色);

效果展示

python实现超简单的视频对象提取功能

实现思路

如上效果图所示,我们要做的就是把视频中的绿色的小猪佩奇识别出来即可,下面是的识别步骤:

  • 使用PS取的小猪佩奇颜色的HSB值,相当于OpenCV的HSV,不过PS的HSV(HSB)取值是:0~360、0~1、0~1,而OpenCV的HSV是:0~180、0~255、0~255,所以要对ps的hsv进行处理,H/2、SV*255;
  • 使用OpenCV位“与运算”提取HSV的颜色部分画面;
  • 使用高斯模糊优化图片;
  • 图片展示;

PS中工具栏右侧HSB显示:

python实现超简单的视频对象提取功能

完整代码

#coding=utf-8
#HSV转换(颜色提取)

import cv2
import numpy as np

cap = cv2.VideoCapture(0)

while (1):
 _, frame = cap.read()
 hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)

 #在PS里用取色器的HSV
 psHSV = [112, 89, 52]
 diff = 40 #上下浮动值
 #因为PS的HSV(HSB)取值是:0~360、0~1、0~1,而OpenCV的HSV是:0~180、0~255、0~255,所以要对ps的hsv进行处理,H/2、SV*255
 lowerHSV = [(psHSV[0] - diff) / 2, (psHSV[1] - diff) * 255 / 100,
    (psHSV[2] - diff) * 255 / 100]
 upperHSV = [(psHSV[0] + diff) / 2, (psHSV[1] + diff) * 255 / 100,
    (psHSV[2] + diff) * 255 / 100]

 mask = cv2.inRange(hsv, np.array(lowerHSV), np.array(upperHSV))

 #使用位“与运算”提取颜色部分
 res = cv2.bitwise_and(frame, frame, mask=mask)
 #使用高斯模式优化图片
 res = cv2.GaussianBlur(res, (5, 5), 1)

 cv2.imshow('frame', frame)
 # cv2.imshow('mask', mask)
 cv2.imshow('res', res)
 if cv2.waitKey(1) & 0xFF == ord('q'):
  break

cv2.destroyAllWindows()

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
python实现的一个p2p文件传输实例
Jun 04 Python
Python冒泡排序注意要点实例详解
Sep 09 Python
Python引用类型和值类型的区别与使用解析
Oct 17 Python
对python中的高效迭代器函数详解
Oct 18 Python
浅谈Pycharm调用同级目录下的py脚本bug
Dec 03 Python
Python实现平行坐标图的两种方法小结
Jul 04 Python
用Python实现将一张图片分成9宫格的示例
Jul 05 Python
python:按行读入,排序然后输出的方法
Jul 20 Python
Python Django简单实现session登录注销过程详解
Aug 06 Python
Python爬虫 批量爬取下载抖音视频代码实例
Aug 16 Python
python绘制雪景图
Dec 16 Python
TensorFlow MNIST手写数据集的实现方法
Feb 05 Python
利用python库在局域网内传输文件的方法
Jun 04 #Python
基于python的图片修复程序(实现水印去除)
Jun 04 #Python
python实现requests发送/上传多个文件的示例
Jun 04 #Python
python3写的简单本地文件上传服务器实例
Jun 04 #Python
Python装饰器的执行过程实例分析
Jun 04 #Python
使用Python监控文件内容变化代码实例
Jun 04 #Python
Python操作mongodb的9个步骤
Jun 04 #Python
You might like
十大催泪虐心动漫,你能坚持看到第几部?
2020/03/04 日漫
PHP控制网页过期时间的代码
2008/09/28 PHP
php对文件夹进行相关操作(遍历、计算大小)
2015/11/04 PHP
PHP 验证身份证是否合法的函数
2017/02/09 PHP
php插入mysql数据返回id的方法
2018/05/31 PHP
JavaScript学习笔记(十七)js 优化
2010/02/04 Javascript
Javascript 键盘事件的组合使用实现代码
2012/05/04 Javascript
Java 正则表达式学习总结和一些小例子
2012/09/13 Javascript
JS与C#编码解码
2013/12/03 Javascript
js电话号码验证方法
2015/09/28 Javascript
JS添加或修改控件的样式(Class)实现方法
2016/10/15 Javascript
jQuery Validate表单验证插件的基本使用方法及功能拓展
2017/01/04 Javascript
vue设计一个倒计时秒杀的组件详解
2019/04/06 Javascript
vue 接口请求地址前缀本地开发和线上开发设置方式
2020/08/13 Javascript
基于Vue2实现移动端图片上传、压缩、拖拽排序、拖拽删除功能
2021/01/05 Vue.js
Python中用format函数格式化字符串的用法
2015/04/08 Python
Python cx_freeze打包工具处理问题思路及解决办法
2016/02/13 Python
Python+Turtle动态绘制一棵树实例分享
2018/01/16 Python
用python实现对比两张图片的不同
2018/02/05 Python
对python3新增的byte类型详解
2018/12/04 Python
Python面向对象程序设计OOP入门教程【类,实例,继承,重载等】
2019/01/05 Python
Python实现计算对象的内存大小示例
2019/07/10 Python
Python及Pycharm安装方法图文教程
2019/08/05 Python
利用OpenCV中对图像数据进行64F和8U转换的方式
2020/06/03 Python
如何用tempfile库创建python进程中的临时文件
2021/01/28 Python
Ibatis如何使用动态表名
2015/07/12 面试题
北京一家公司的.net开发工程师笔试题
2012/04/17 面试题
社区中秋节活动方案
2014/01/29 职场文书
婚礼司仪主持词
2014/03/14 职场文书
酒店管理毕业生自荐信
2014/05/25 职场文书
工地质量标语
2014/06/12 职场文书
庆国庆活动总结
2014/08/28 职场文书
2014中学教师节广播稿
2014/09/10 职场文书
销售员试用期自我评价
2014/09/15 职场文书
浅谈JS的原型和原型链
2021/06/04 Javascript
基于Python实现nc批量转tif格式
2022/08/14 Python