摄像头测试python

-- coding: cp936 --

"""
Author:zhangbo
Date:2019-11-07
Discription:Read Camaro picture and save
"""

import cv2,os,time,datetime
import numpy as np

class CamaroCap(object):

""" 打开视频流 """
def __init__(self):
    
    self.cap = cv2.VideoCapture(0)
    #self.cap.set(cv2.CAP_PROP_FPS, 16) #这个有时候生效,有时候不生效不知道是什么原因
    self.cap.set(cv2.CAP_PROP_FRAME_WIDTH, 2048) #2048
    self.cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 1536) #1536
    #self.cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc('M', 'J', 'P', 'G'))


""" 图片信息打印 """      
def get_image_info(self,image):
    print(type(image))
    print(image.shape)
    print(image.size)
    print(image.dtype)
    pixel_data = np.array(image)
    
    
""" 逐帧读取数据并保存图片到本地制定位置 """
def Camaro_image(self):

    start_time = time.time()
    counter = 0

    while(True):
        ret,frame = self.cap.read() #ret:True或者False,代表有没有读取到图片;frame:表示截取到一帧的图片
    
        counter += 1  # 计算帧数
        if (time.time() - start_time) != 0:  # 实时显示帧数
            cv2.putText(frame, "FPS {0}  {1}X{2}".format(float('%.1f' % (counter / (time.time() - start_time))),frame.shape[0],frame.shape[1]), (500, 50),
                        cv2.FONT_HERSHEY_SIMPLEX, 2, (0, 0, 255),
                        3)
            
            cv2.imshow('frame', frame)
            print("FPS: ", counter / (time.time() - start_time))
            counter = 0
            start_time = time.time()
        
        if ret == False:
            break
        
        self.get_image_info(frame) # print("打印图片信息") 注意:调试的时候可以打开,如果是一直运行程序,建议把这行代码注释掉,避免影响内存占用          
        
        if cv2.waitKey(1) & 0xFF == ord('q'): 
            break
            

if name == '__main__':

outmasages = CamaroCap() 

outmasages.Camaro_image() # 调用摄像头

outmasages.cap.release() # 释放对象和销毁窗口
cv2.destroyAllWindows()

发表新评论