ubuntu 上使用 python 实现抓取摄像头图片

通过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的版本不同,可能使用的函数不一样

 

 

 


 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值