美文网首页
Queue使用 注意

Queue使用 注意

作者: onbug | 来源:发表于2019-03-29 19:01 被阅读0次
import cv2
import Queue
import threading
import time

class PhotoTaker(object):
    def __init__(self, cam_NO=0):
        cap = cv2.VideoCapture(cam_NO)
        cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1920)
        cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080)
        cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc(*'MJPG'))
        cap.set(cv2.CAP_PROP_FPS, 30)
        self.cap = cap
        self.photoQueue = Queue.Queue(maxsize=10)
        self.th = threading.Thread(target=self._photo_worker)
        self.th.setDaemon(True)
        self.th.start()

    def _photo_worker(self):
        while True:
            ret, frame = self.cap.read()
            if ret:
                self.image = frame
                if self.photoQueue.full():
                    self.photoQueue.get()
                self.photoQueue.put(frame,)
            time.sleep(0.001)

    def get_photo_detect(self):
        return self.image
    def get_photo(self):
        return self.photoQueue.get()

在主进程中新建一个PhotoTaker实例i,新建一个线程A,A中调用i.get_photo(),会有阻塞的情况

相关文章

网友评论

      本文标题:Queue使用 注意

      本文链接:https://www.haomeiwen.com/subject/caurbqtx.html