В настоящее время я работаю над проектом Python.Речь идет об обнаружении изображений.Я должен к процессам, которые работают одновременно с многопроцессорностью.Первая функция связывается с фрейм-граббером и выполняет некоторую обработку изображения.Вторая функция связывается с нейронной сетью, которая выполняет фактическое обнаружение изображения.Для второй функции требуется изображение, захваченное в первой функции для обнаружения.Затем вторая функция должна предоставлять результаты, которые используются первой функцией для рисования прямоугольников в видеопотоке (где обнаружены объекты).
Код выглядит примерно так:
import multiprocessing
import cv2
import json
def fun1():
while True:
# Shows video-stream, does image editing, grabs frames
# and stores them in an external folder
# Accesses the result for drawing rectangles from the
# .json file
def fun2():
while True:
# Uses frames from the external folder
# does image-detection, saves result to .json file
if __name__ == "__main__":
s = Process(target=fun1)
r = Process(target=fun2)
s.start()
r.start()
s.join()
r.join()
Как видите, оба процесса работают в бесконечном цикле while.На данный момент я сохраняю изображения, созданные в fun1, в папке, где fun2 может получить к ним доступ.Результаты из нейронной сети из fun2 сохраняются в файле .json, где fun1 может получить к ним доступ.
И результат, и изображение меняются при каждой итерации.Мне было интересно, есть ли способ отправить текущее изображение напрямую в fun2 и отправить результат из fun2 в fun1 без использования внешнего файла .json.Есть ли способ связаться напрямую?
Я надеюсь, что смогу объяснить мою проблему по понятным причинам.
Спасибо за помощь!