欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

使用imutils包的VideoStream读取视频流,丢帧率达20%

程序员文章站 2022-06-12 15:43:03
最近在读取相机RTSP流,发现OpenCV不如下面方式读取的快:import _threadfrom imutils.video import VideoStreamimport imutilsimport timeimport numpy as npimport cv2# # 为线程定义一个函数def cam1( threadName): cap = VideoStream('test.mp4').start() n=0 while True:...

最近在读取相机RTSP流,发现OpenCV不如使用imutils包读取的快:

import _thread
from imutils.video import VideoStream
import imutils
import time
import numpy as np
import cv2

# # 为线程定义一个函数
def cam1( threadName):
    cap = VideoStream('test.mp4').start()
    n=0
    while True:
        img = cap.read()
        n=n+1
        cv2.putText(img, str(n), (50, 300), cv2.FONT_HERSHEY_SIMPLEX, 1.2, (255, 255, 255), 2)
        cv2.imshow('frame11', img)
        cv2.waitKey(1)
    cap.release()

OpenCV读取方式:

def cam2(threadName):
    n=0
    cap = cv2.VideoCapture('test.mp4')
    while True:
        ret, img = cap.read()
        if ret:
            n = n + 1
            cv2.putText(img, str(n), (50, 300), cv2.FONT_HERSHEY_SIMPLEX, 1.2, (255, 255, 255), 2)
            cv2.imshow('frame22222222222', img)
            cv2.waitKey(1)
    cap.release()

如果开两个线程读取摄像头竟然不同步,于是读取同一段视频,发现一段视频上面读取380帧,OpenCV读取443帧,故得出如上读取方式存在丢帧现象,大家使用时谨慎使用。

本文地址:https://blog.csdn.net/ze1336365763/article/details/107339359