"""
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()