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. "htmlcode">#!/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设置摄像头分辨率以及各个参数的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
opencv,摄像头,分辨率
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新动态
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]