python opencv设置摄像头分辨率以及各个参数的方法


Posted in Python onApril 02, 2018

1,为了获取视频,你应该创建一个 VideoCapture 对象。他的参数可以是设备的索引号,或者是一个视频文件。设备索引号就是在指定要使用的摄像头。一般的笔记本电脑都有内置摄像头。所以参数就是 0。你可以通过设置成 1 或者其他的来选择别的摄像头。之后,你就可以一帧一帧的捕获视频了。但是最后,别忘了停止捕获视频。使用 ls /dev/video*命令可以查看摄像头设备

2,cap.read() 返回一个布尔值(True/False)。如果帧读取的是正确的,就是 True。所以最后你可以通过检查他的返回值来查看视频文件是否已经到了结尾。有时 cap 可能不能成功的初始化摄像头设备。这种情况下上面的代码会报错。你可以使用 cap.isOpened(),来检查是否成功初始化了。如果返回值是True,那就没有问题。否则就要使用函数 cap.open()。你可以使用函数 cap.get(propId) 来获得视频的一些参数信息。这里propId 可以是 0 到 18 之间的任何整数。每一个数代表视频的一个属性,见表其中的一些值可以使用cap.set(propId,value) 来修改,value 就是

你想要设置成的新值。例如,我可以使用 cap.get(3) 和 cap.get(4) 来查看每一帧的宽和高。默认情况下得到的值是 640X480。但是我可以使用 ret=cap.set(3,320)和 ret=cap.set(4,240) 来把宽和高改成 320X240。

CV_CAP_PROP_POS_MSEC Current position of the video file in milliseconds.
• CV_CAP_PROP_POS_FRAMES 0-based index of the frame to be decoded/captured next.
• CV_CAP_PROP_POS_AVI_RATIO Relative position of the video file: 0 - start of the film, 1 - end of the film.
• CV_CAP_PROP_FRAME_WIDTH Width of the frames in the video stream.
• CV_CAP_PROP_FRAME_HEIGHT Height of the frames in the video stream.
• CV_CAP_PROP_FPS Frame rate.
• CV_CAP_PROP_FOURCC 4-character code of codec.
• CV_CAP_PROP_FRAME_COUNT Number of frames in the video file.
• CV_CAP_PROP_FORMAT Format of the Mat objects returned by retrieve() .
• CV_CAP_PROP_MODE Backend-specific value indicating the current capture mode.
• CV_CAP_PROP_BRIGHTNESS Brightness of the image (only for cameras).
• CV_CAP_PROP_CONTRAST Contrast of the image (only for cameras).
• CV_CAP_PROP_SATURATION Saturation of the image (only for cameras).
• CV_CAP_PROP_HUE Hue of the image (only for cameras).
• CV_CAP_PROP_GAIN Gain of the image (only for cameras).
• CV_CAP_PROP_EXPOSURE Exposure (only for cameras).
• CV_CAP_PROP_CONVERT_RGB Boolean flags whether images should be converted to RGB. indicating
• CV_CAP_PROP_WHITE_BALANCE Currently unsupported
• CV_CAP_PROP_RECTIFICATION Rectification flag for stereo cameras (note: only supported by DC1394 v 2.x backend cur-rently)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import cv2
import numpy
from hlf_module import hlf_define
from std_msgs.msg import String
import matplotlib.pyplot as plot
import xml.dom.minidom
import pylab
import rospy
import time
cap = cv2.VideoCapture(0)
cap.set(3,640) #设置分辨率
cap.set(4,480)
fps =cap.get(cv2.CAP_PROP_FPS) #获取视频帧数
face_casade = cv2.CascadeClassifier('/opt/ros/kinetic/share/OpenCV-3.2.0-dev/haarcascades/haarcascade_frontalface_default.xml')
Node_name='neck'
#print cap.isOpened()
class Detect_face():
def __init__(self):
'''定义节点Node_name(全局变量,而非具体名称)'''
self.err_pub=hlf_define.err_publisher()#错误消息发布者
rospy.init_node(Node_name,anonymous=True)
self.neck_puber=rospy.Publisher(hlf_define.TOPIC_ACTION_NECK,String,queue_size=10)
time.sleep(0.5)
def head_motor_value(self):#解析xml文件 获取舵机的范围值
dom = xml.dom.minidom.parse('/home/sb/catkin_ws/src/hlf_robot/scripts/hlf_action/head_value.xml')
#得到文档元素对象
root = dom.documentElement
itemlist = root.getElementsByTagName('login')
item = itemlist[0]
max_value=item.getAttribute("max")
min_value=item.getAttribute("min")
return max_value,min_value
def detect_face(self):
# get a frame
#frame=cv2.imread('/home/sb/桌面/timg.jpeg')
ret, frame = cap.read()
gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)#转成灰度图
#frame=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
# show a frame
cv2.imshow("capture", gray)
faces = face_casade.detectMultiScale(gray,1.2,5) #检测人脸
#print len(faces)
if len(faces)>0:#判断是否检测到人脸
result = ()
max_face = 0
value_x=0
for (x,y,w,h) in faces:
if (w*h > max_face): #检测最大人脸
max_face = w*h
result = (x,y,w,h)
# max_face.append(width*height)
x=result[0]
w=result[2]
z=value_x=value_x+x+w/2
return z
else:
return 1
if __name__=='__main__':
face=Detect_face()
motor_max,motor_min= face.head_motor_value()
x=[]
i=1
while True:
try:
z=face.detect_face()
if z != 1:
x.append(z)
if len(x)>(fps-1):
true_x = int(sum(x)/30)
if(true_x>319):
motor_value=int(1500+(int(motor_max)-1500)*(true_x-319)/320)#转换成舵机值 头部向左转
face.neck_puber.publish('%s'%motor_value)
elif (true_x<319):
motor_value=int(1500-(1500-int(motor_min))*(319-true_x)/320)
face.neck_puber.publish('%s'%motor_value)
x=[]
else:
if i==fps:
face.neck_puber.publish('1500')
i=1
else:
i +=1
print (U'未检测到人脸')
if cv2.waitKey(1) & 0xFF == ord('q'):
break
except Exception,e:
print e
cap.release()
cv2.destroyAllWindows()

以上这篇python opencv设置摄像头分辨率以及各个参数的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python下paramiko模块实现ssh连接登录Linux服务器
Jun 03 Python
Python爬虫辅助利器PyQuery模块的安装使用攻略
Apr 24 Python
python+selenium实现163邮箱自动登陆的方法
Dec 31 Python
Python生成器定义与简单用法实例分析
Apr 30 Python
使用python存储网页上的图片实例
May 22 Python
python实现飞机大战微信小游戏
Mar 21 Python
python 提取tuple类型值中json格式的key值方法
Dec 31 Python
python 判断字符串中是否含有汉字或非汉字的实例
Jul 15 Python
windows、linux下打包Python3程序详细方法
Mar 17 Python
Django实现任意文件上传(最简单的方法)
Jun 03 Python
Python爬取科目四考试题库的方法实现
Mar 30 Python
python区块链持久化和命令行接口实现简版
May 25 Python
python opencv 图像尺寸变换方法
Apr 02 #Python
Python聊天室程序(基础版)
Apr 01 #Python
Python socket实现简单聊天室
Apr 01 #Python
简单实现python聊天程序
Apr 01 #Python
简单实现Python爬取网络图片
Apr 01 #Python
Python中elasticsearch插入和更新数据的实现方法
Apr 01 #Python
python之DataFrame实现excel合并单元格
Feb 22 #Python
You might like
php at(@)符号的用法简介
2009/07/11 PHP
php数据入库前清理 注意php intval与mysql的int取值范围不同
2010/12/12 PHP
php防止sql注入示例分析和几种常见攻击正则表达式
2014/01/12 PHP
php中smarty变量修饰用法实例分析
2015/06/11 PHP
PHP操作XML中XPath的应用示例
2019/07/04 PHP
网页编辑器ckeditor和ckfinder配置步骤分享
2012/05/24 Javascript
js实时获取系统当前时间实例代码
2013/06/28 Javascript
JS getAttribute和setAttribute(取得和设置属性)的使用介绍
2013/07/10 Javascript
用JavaScript实现用一个DIV来包装文本元素节点
2014/09/09 Javascript
JS对象与json字符串格式转换实例
2014/10/28 Javascript
使用iojs的jsdom库实现同步系统时间
2015/04/20 Javascript
JavaScript中string对象
2015/06/12 Javascript
jQuery简单验证上传文件大小及类型的方法
2016/06/02 Javascript
浅谈addEventListener和attachEvent的区别
2016/07/14 Javascript
jquery自定义表单验证插件
2016/10/12 Javascript
js放到head中失效的原因与解决方法
2017/03/07 Javascript
微信小程序实现日历功能
2018/11/27 Javascript
js遍历详解(forEach, map, for, for...in, for...of)
2019/08/28 Javascript
es6函数name属性功能与用法实例分析
2020/04/18 Javascript
python自动化工具日志查询分析脚本代码实现
2013/11/26 Python
解决使用export_graphviz可视化树报错的问题
2019/08/09 Python
解决html5中的video标签ios系统中无法播放使用的问题
2020/08/10 HTML / CSS
奢华时尚的独特视角:La Garçonne
2018/06/07 全球购物
大学毕业生个人自荐信范文
2014/01/08 职场文书
后备干部考察材料
2014/02/12 职场文书
行政助理工作职责范本
2014/03/04 职场文书
前台文员职责范本
2014/03/07 职场文书
财务部副经理岗位职责
2014/03/14 职场文书
预防艾滋病宣传标语
2014/06/25 职场文书
四风批评与自我批评范文
2014/10/14 职场文书
结婚老公保证书
2015/02/26 职场文书
2015年食堂工作总结报告
2015/04/23 职场文书
2015学校年度工作总结
2015/05/11 职场文书
安全生产培训心得体会
2016/01/18 职场文书
为什么RedisCluster设计成16384个槽
2021/09/25 Redis
大脑的记忆过程在做数据压缩,不同图形也有共同的记忆格式
2022/04/29 数码科技