通过open cv 实现抓取摄像头图片,或录像
1, 抓取图片
import cv2
import numpy as np
import sys
import time
#import datetime as d
#c=time.time()
#t=time.ctime(c) #获得当前系统时间1
t=time.strftime("%Y%m%d%H%M%S",time.localtime())#获得当前系统时间2
videoname=str(t)+'.avi'
#fourcc=cv2.VideoWriter_fourcc('M','P','4','2')
fourcc = cv2.cv.CV_FOURCC(*'XVID')
out=cv2.VideoWriter(videoname,fourcc,10,(1280,720))
#cv2.namedWindow("li") #命名一个窗口
cap = cv2.VideoCapture(0)#打开摄像头
time_start=time.time()
cap.set(3,1280) #设置分辨率
cap.set(4,720)
while 1:
success, frame = cap.read()
size = frame.shape[:2]#获取当前桢彩色图像的大小
image = np.zeros(size,dtype = np.float16)#定义一个与当前桢图像大小相同的灰度图像矩阵
image = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)#将当前桢图像转换成灰度图像
cv2.equalizeHist(image,image)#灰度图像进行直方图等距化
#设定最小图像的大小
#cv2.imshow("li",frame)#显示图像
out.write(frame)
# key = cv2.waitKey(10)
# c = chr(key & 255)
# if c in ['q','Q',chr(27)]:
# break
time_end=time.time()
if (time_end-time_start) >5 :
break;
cap.release()
#cv2.destroyWindow("li")
2. 录相
import cv2
import time
cap = cv2.VideoCapture(0)
i=0
cap.set(3,1280)
cap.set(4,720)
t=time.strftime("%Y%m%d%H%M%S",time.localtime())
#cap.get(cv2.CAP_PROP_FPS)
while(i<5):
ret,frame=cap.read()
#cv2.imshow('capture',frame)
#cv2.imwrite('/work/android/' + str(i) + ".jpg", frame)
cv2.imwrite('/work/android/' + str(t) + ".jpg", frame)
i=i+1
#if cv2.waitKey(1)&0xFF==ord('q'):
break
cap.release()
cv2.destroyAllWindows()
#VideoCapture capture(0);
#
#capture.set(CV_CAP_PROP_FRAME_WIDTH, 1080);
#capture.set(CV_CAP_PROP_FRAME_HEIGHT, 960);
#capture.set(CV_CAP_PROP_FPS, 30);
#capture.set(CV_CAP_PROP_BRIGHTNESS, 1);
#capture.set(CV_CAP_PROP_CONTRAST,40);
#capture.set(CV_CAP_PROP_SATURATION, 50);
#capture.set(CV_CAP_PROP_HUE, 50);
#capture.set(CV_CAP_PROP_EXPOSURE, 50);
由于 openCV的版本不同,可能使用的函数不一样