python opencv设置摄像头分辨率以及各个参数的方法
摘自:http://www.cppcns.com/jiaoben/python/224278.html
python opencv设置摄像头分辨率以及各个参数的方法
发布时间: 2019-04-21 10:32:09 来源: 互联网 作者: qq_31077649 栏目: python 点击: 1190
下面小编就为大家分享一篇python opencv设置摄像头分辨率以及各个参数的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
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 opencv设置摄像头分辨率以及各个参数的方法
本文地址: http://www.cppcns.com/jiaoben/python/224278.html
python opencv设置摄像头分辨率以及各个参数的方法相关推荐
- python获取摄像头型号_python opencv设置摄像头分辨率以及各个参数的方法_python
下面就为大家分享一篇python opencv设置摄像头分辨率以及各个参数的方法,具有很好的参考价值,希望对大家有所帮助.一起过来看看吧 1,为了获取视频,你应该创建一个 VideoCapture 对 ...
- Python OpenCV设置摄像头分辨率
在创建完 VideoCapture 对象并成功打开摄像头后,可以使用函数 video.get(propId) 来获得视频的一些参数信息.这里propId 可以是 0 到 18 之间的任何整数.每一个数 ...
- python opencv设置不同的视频编解码器参数
环境:opencv 3.4.0 python 3.5.2读取视频 #环境:opencv 3.4.0 python 3.5.2#读取视频import cv2cap = cv2.VideoCapture( ...
- opencv设置摄像头分辨率不生效
opencv vs2019 videoCapture set分辨率1600*1200 设置为1600-1200,读取时变成了1280-960,在linux上是正常的,到了win10不知怎得就设置不了了 ...
- 【计算机视觉】关于用opencv 设置摄像头读分辨率问题的若干说明
关于用opencv 设置摄像头读分辨率问题的若干说明 1 问题最初起因 我想充分利用相机高分辨率来提高视角,故用opencv直接设置摄像机分辨率.不幸的我倒霉出现问题. VideoCapture类读A ...
- python opencv 保存摄像头视频,以及fourc编码的介绍
之所以写这篇博客,主要还是想介绍一下fourcc编码 1 读取摄像头 1.1 正常读取一个摄像头 1.读取摄像头 只读取摄像头 没有做其他操作 import cv2# 获取摄像头 0代表摄像头索引 c ...
- python+opencv打开摄像头、拍摄指定次数的照片_python+openCV调用摄像头拍摄和处理图片的实现...
在深度学习过程中想做手势识别相关应用,需要大量采集手势图片进行训练,作为一个懒人当然希望飞快的连续采集图片并且采集到的图片就已经被处理成统一格式的啦..于是使用python+openCV调用摄像头,在 ...
- python opencv打开摄像头,截图保存
python opencv打开摄像头,截图保存,学习结果如下: 使用python打开摄像头 import cv2 cap = cv2.VideoCapture(0) #设置摄像头 0是默认的摄像头 如 ...
- python+openCV调用摄像头拍摄和处理图片
在深度学习过程中想做手势识别相关应用,需要大量采集手势图片进行训练,作为一个懒人当然希望飞快的连续采集图片并且采集到的图片就已经被处理成统一格式的啦..于是使用python+openCV调用摄像头,在 ...
最新文章
- 你了解计算机系统的层次结构吗?计算机语言怎么发展的?
- 一分钟了解负载均衡的一切
- 谱聚类(Spectral clustering)(2):NCut
- 【ACM】CODE[VS] 2806(DFS)
- CSS动画:有活力的链接下划线
- 信息安全管理体系 ISMS
- 耐寂寞谋定未来-农业大健康·国情讲坛:乡村振兴守公益心
- 让pt-slave-restart支持MariaDB
- 系统架构设计师考试知识点整理-3:信号量与PV操作
- java -锁(公平、非公平锁、可重入锁【递归锁】、自旋锁)
- Android逆向笔记-通过ApkTool源码分析未能反编译APK的原因
- java 当中的验证码_Java Web中验证码的实现
- PHP正则匹配6到16位字符组合(且只能为数字、字母、下划线)
- Jenkins checkout的文件 , TortoiseSVN 无法提交。 问题已经解决啦!
- v-ray 5.0 渲染器参数说明
- 网银安全控件远程代码执行漏洞分析
- 余世雄 - 与上司沟通的7个技巧
- 抖音微信消息推送情侣告白浪漫(简易版)
- 网络安全 顶级进行鱼叉式钓鱼攻击?手把手教学
- 内核中的gfp_t类型
热门文章
- php7.1安装phpmyadmin,PHP_深入phpMyAdmin的安装与配置的详细步骤,phpmyadmin就是一种mysql的管理工 - phpStudy...
- python调用graphviz中文乱码_Python-Graphviz
- 下载graphviz配置问题
- 【百分百成功】Window 10 Google Chrome无法启动更新检查(错误代码为1:0x80004005)
- Linux运维05:mpstat命令详解
- HTML基础教程 表格
- 【无标题】看来学c++真的需要细心啊!
- smartctl 硬盘信息查询
- 愿十月逝去的人,安好
- python中函数返回值是函数的函数的用法 func()()