下面就为大家分享一篇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获取摄像头型号_python opencv设置摄像头分辨率以及各个参数的方法_python相关推荐

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

    摘自:http://www.cppcns.com/jiaoben/python/224278.html python opencv设置摄像头分辨率以及各个参数的方法 发布时间: 2019-04-21 ...

  2. opencv设置摄像头获取图片大小

    opencv设置摄像头获取图片大小方法如下: cap = cv2.VideoCapture(0) #打开默认摄像头采集图像width = 640 #定义摄像头获取图像宽度 height = 480 # ...

  3. 【计算机视觉】关于用opencv 设置摄像头读分辨率问题的若干说明

    关于用opencv 设置摄像头读分辨率问题的若干说明 1 问题最初起因 我想充分利用相机高分辨率来提高视角,故用opencv直接设置摄像机分辨率.不幸的我倒霉出现问题. VideoCapture类读A ...

  4. linux中cv调用摄像头,ubuntu中opencv调用摄像头

    ubuntu中opencv调用摄像头 ubuntu中opencv调用摄像头 文章目录 一.Ubuntu中安装opencv 二.关于Linux如何开启摄像头 1.安装VMvareTools,这个是真的强 ...

  5. 怎样查找计算机cpu的频率,Win7电脑查看CPU型号和主频、缓存、接口等参数的方法...

    CPU作为计算机的大脑对电脑的工作是至关重要的,那么怎么查看CPU的型号以及有关的参数信息呢,比如CPU核数,CPU主频,CPU一级缓存及二级缓存,CPU插槽接口类型等等,怎么查看CPU型号和主频.缓 ...

  6. python照片过人脸_python openCV实现摄像头获取人脸图片

    本文实例为大家分享了python openCV实现摄像头获取人脸图片的具体代码,供大家参考,具体内容如下 在机器学习中,训练模型需要大量图片,通过openCV中的库可以快捷的调用摄像头,截取图片,可以 ...

  7. python+opencv打开摄像头、拍摄指定次数的照片_python+openCV调用摄像头拍摄和处理图片的实现...

    在深度学习过程中想做手势识别相关应用,需要大量采集手势图片进行训练,作为一个懒人当然希望飞快的连续采集图片并且采集到的图片就已经被处理成统一格式的啦..于是使用python+openCV调用摄像头,在 ...

  8. python调用摄像头录制视频_Python OpenCV使用摄像头捕获视频

    我们知道,OpenCV是一款强大的跨平台的计算机视觉库,使用它能完成我们对于图像和视频处理的很多功能,今天,我们使用OpenCV来捕获计算机摄像头的视频. 使用OpenCV捕获摄像头视频 我们知道,视 ...

  9. python人脸识别截图_Python OpenCV调用摄像头检测人脸并截图

    本文实例为大家分享了Python OpenCV调用摄像头检测人脸并截图的具体代码,供大家参考,具体内容如下 注意:需要在python中安装OpenCV库,同时需要下载OpenCV人脸识别模型haarc ...

最新文章

  1. NB-IOT来了,物联网时代才真正来临
  2. 【观影】摩托日记、盲井
  3. 基于某网站的信息爬取与保存_指定查询内容
  4. how is crmd_product_i inserted to db
  5. Java基础笔记 – Annotation注解的介绍和使用 自定义注解
  6. 服务器安装三节点RabbitMQ集群
  7. pix2pix损失函数理解(精)
  8. 东北大学计算机分数线2017,东北大学2017年艺术类专业录取分数线
  9. OpenCV medianBlur、GaussianBlur和bilateralFilter (中值滤波、高斯滤波、双边滤波)
  10. 详解display:inline | block |inline-block的区别(转)
  11. 卷积神经网络问题总结
  12. Word2007中公式和文字混排,文字和公式总是没法对齐
  13. 算法64-荷兰国旗问题
  14. 斐讯k2路由器刷pandorabox认证哆点Drcom
  15. 申请ARM DS-5单月试用版并安装
  16. MATLAB图像处理基本函数
  17. C语言两个文本相似度的算法,两个文本相似度算法实现和对比
  18. git报错would clobber existing tag
  19. 2021ccpc网络预选赛部分题解
  20. 重装系统win7教程

热门文章

  1. centos下的vim安装
  2. 新春快乐!马年大吉!518
  3. OSSH免费版华为Portal
  4. 小程序中让后面的View覆盖到上一个view中
  5. 算法:一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法.
  6. android荣耀不弹出获取权限提醒,荣耀手机怎么设置锁屏消息提示?附不提示的解决方法...
  7. 名帖63 欧阳询 楷书《九成宫醴泉铭》
  8. JIRA部署破解和confluence整合
  9. 商品规格常用的规格排列组合算法
  10. Android 打包签名 从生成keystore到完成签名