赞
踩
目的:
实现
#-*- coding:utf-8 _*- import cv2 import multiprocessing as mp """ 读取摄像头进程,将摄像头读取的图像存储到队列当中 """ def ImgRead(DealFlag, ImgQueue): cam = cv2.VideoCapture(0) if not cam.isOpened(): print("Unable to open camera") else: while True: ret, Img = cam.read() if not ret: break if not DealFlag.value: ImgQueue.put(Img) DealFlag.value = 1 cam.release() """ 处理图像线程,将图像从队列弹出,进行处理 """ def ShowImg(DealFlag, ImgQueue): while True: if DealFlag.value and not ImgQueue.empty(): Img = ImgQueue.get() DealFlag.value = 0 cv2.imshow('Img', Img) cv2.waitKey(5) def vision(): ImgQueue = mp.Queue() # 先进先出队列,实现不同进程数据交互 DealFlag = mp.Value('B', 0) # DealFlag为1,则表示有图片,可处理 Mps = [] Mps.append(mp.Process(target=ImgRead, args=(DealFlag, ImgQueue))) Mps.append(mp.Process(target=ShowImg, args=(DealFlag, ImgQueue))) [Mp.start() for Mp in Mps] Mps[0].join() [Mp.terminate() for Mp in Mps] if __name__ == '__main__': vision()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。