Exemple #1
0
        if w_fix != w_req or h_fix != h_req:
            frame = cv2.resize(frame, w_fix, h_fix)
            w_frame, h_frame = w_fix, h_fix
    return wx.Image(w_frame, h_frame, cv2.cvtColor(frame, cv2.COLOR_BGR2RGB))


def resizeFrame(frame, w_req, h_req):
    h_frame, w_frame, layers = frame.shape
    w_fix, h_fix = rescaleToRect(w_frame, h_frame, w_req, h_req)
    if w_fix != w_req or h_fix != h_req:
        frame = cv2.resize(frame, w_fix, h_fix)
    return frame


jpegFramesCacheMax = 30 * 60
jpegFramesCache = LRUCache(jpegFramesCacheMax)


def frameToJPeg(frame):
    jpeg = cv2.imencode('.jpg', frame)[1].tostring()
    jpegFramesCache[bytes(jpeg)] = frame
    return jpeg


def jpegToFrame(jpeg):
    key = bytes(jpeg)
    if key in jpegFramesCache:
        return jpegFramesCache[key]
    frame = cv2.imdecode(np.frombuffer(jpeg, np.uint8), 1)
    jpegFramesCache[key] = frame
    return frame