首页 > 解决方案 > 多处理和数据传输到流程

问题描述

我正在尝试制作一个简单的程序,该程序将从摄像机中获取图像,逐帧保存并进行处理。在一个过程中 - 视频播放器和保存帧,在另一个过程中直接处理帧。

import multiprocessing
import time
import os


import numpy as np
import sys
import cv2


def video_player():
    while True:
        ret, img = capture.read()
        gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
        cv2.imshow("camera", gray)
        cv2.imwrite('image.jpg', gray)
        if cv2.waitKey(10) == 27:
            break



def numb():
    while True:
        try:
            do something with image.jpg
        except:
            pass



if __name__ == '__main__':

    capture = cv2.VideoCapture(0)

    videoplayer_on = multiprocessing.Process(target=video_player())
    numb_run = multiprocessing.Process(target=numb)

    videoplayer_on.start()
    numb_run.start()

这适用于 linux,但在 Windows 上,播放器的进程似乎没有启动。在我看来,我显然以某种方式错误地尝试将捕获从相机传递给进程功能

标签: pythonpython-3.xmultiprocessing

解决方案


推荐阅读