网络摄像头转usb接口_同时读取多个摄像头数据(包括海康网络摄像头和USB摄像头)...

一、功能

1、实现多个摄像头同时获取图像,并保存到个各自目录

2、摄像头类别包括海康RSTP协议网络摄像头和普通USB摄像头

3、可自动和手动保存图片

二、注意事项

1.python可以使用multiprocessing多进程读取多个摄像头,但是multiprocessing自带的队列在交换数据时内存不会释放(没搞明白),所以使用了python threading多线程配合python自带的队列queue交换数据。

三、代码与演示

"""
@ capture multiple cameras images to different folder
"""

import cv2
import numpy as np
import time
import os
import threading
from time import ctime,sleep
import queue

abspath = os.path.abspath(os.path.dirname(__file__))


class threadCameraRSTP (threading.Thread):
    """Hikvision camera
    @user   User name.
    @passwd User password.
    @ip     Camera ip name.
    @queue  Output queue.
    """
    def __init__(self, user, passwd, ip, queue):
        threading.Thread.__init__(self)
        self.user = user
        self.passwd = passwd
        self.ip = ip
        self.q = queue

    def run(self):
        access = "rtsp://%s:%s@%s//Streaming/Channels/1"  % (self.user, self.passwd, self.ip)
        cap = cv2.VideoCapture(access)
        if cap.isOpened():
            print('camera ' + self.ip + " connected.")

        while True:
            ret, img = cap.read()
            if ret:
                self.q.put(img)
                self.q.get() if self.q.qsize() > 2 else time.sleep(0.01)


class threadCameraUSB (threadin
  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值