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中的rfind()方法使用详解
May 19 Python
Python调用C# Com dll组件实战教程
Oct 12 Python
Python去除、替换字符串空格的处理方法
Apr 01 Python
python3连接MySQL数据库实例详解
May 24 Python
Python图片转换成矩阵,矩阵数据转换成图片的实例
Jul 02 Python
Python开发之Nginx+uWSGI+virtualenv多项目部署教程
May 13 Python
Django基础三之视图函数的使用方法
Jul 18 Python
python实现信号时域统计特征提取代码
Feb 26 Python
python解释器安装教程的方法步骤
Jul 02 Python
python遍历路径破解表单的示例
Nov 21 Python
python 模块重载的五种方法
Apr 24 Python
Python 全局空间和局部空间
Apr 06 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
web方式ftp
2006/10/09 PHP
JavaScript 获取事件对象的注意点
2009/07/29 Javascript
文本框的字数限制功能jquery插件
2009/11/24 Javascript
一个简单的JavaScript数据缓存系统实现代码
2010/10/24 Javascript
iframe 父窗口和子窗口相互的调用方法集锦
2010/12/15 Javascript
Javascript中的window.event.keyCode使用介绍
2011/04/26 Javascript
js控制分页打印、打印分页示例
2014/02/08 Javascript
技术男用来对妹子表白的百度首页
2014/07/23 Javascript
用js代码和插件实现wordpress雪花飘落效果的四种方法
2014/12/15 Javascript
Web前端开发工具——bower依赖包管理工具
2016/03/29 Javascript
Jquery $when done then的用法详解
2016/05/20 Javascript
jQuery实现拖拽页面元素并将其保存到cookie的方法
2016/06/12 Javascript
利用Angularjs和Bootstrap前端开发案例实战
2016/08/27 Javascript
JQueryEasyUI框架下的combobox的取值和绑定的方法
2017/01/22 Javascript
BootStrap的双日历时间控件使用
2017/07/25 Javascript
Angular4 组件通讯方法大全(推荐)
2018/07/12 Javascript
优雅的在React项目中使用Redux的方法
2018/11/10 Javascript
Vue js 的生命周期(看了就懂)(推荐)
2019/03/29 Javascript
vue-cli在 history模式下的配置详解
2019/11/26 Javascript
uniapp微信小程序:key失效的解决方法
2021/01/20 Javascript
利用Django框架中select_related和prefetch_related函数对数据库查询优化
2015/04/01 Python
Python入门之三角函数tan()函数实例详解
2017/11/08 Python
Python虚拟环境项目实例
2017/11/20 Python
对python读取CT医学图像的实例详解
2019/01/24 Python
python的range和linspace使用详解
2019/11/27 Python
pyMySQL SQL语句传参问题,单个参数或多个参数说明
2020/06/06 Python
越南综合购物网站:Lazada越南
2019/06/10 全球购物
日本最大化妆品和美容产品的综合口碑网站:cosme shopping
2019/08/28 全球购物
俄罗斯家居用品购物网站:Евродом
2020/11/21 全球购物
年终考核评语
2014/01/19 职场文书
小学少先队活动方案
2014/02/18 职场文书
技术总监管理岗位职责
2014/03/09 职场文书
总结表彰大会主持词
2014/03/26 职场文书
小学优秀教师材料
2014/12/15 职场文书
庆六一开幕词
2015/01/29 职场文书
2015暑期工社会实践报告
2015/07/13 职场文书