Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django视频背景分析_Python_Django_Multithreading_Opencv_Video - Fatal编程技术网

Python Django视频背景分析

Python Django视频背景分析,python,django,multithreading,opencv,video,Python,Django,Multithreading,Opencv,Video,我正在尝试用Django构建一个分析实时视频的网页。我成功地在特定链接上显示了分析结果(我添加了几行以添加图像分析)。 但是,分析在我打开链接时开始,当我关闭链接时,视频分析将停止。打开多个链接也会导致问题 我需要视频分析开始时,我添加了一个摄像头对象,并继续运行,直到服务器关闭。此外,需要并行地进行来自多个摄像机的分析 我正在寻找一些解决方案,偶然发现了“芹菜”和“django后台应用程序”。它们能解决我的问题吗?或者是否有任何建议的解决方案 谢谢:) from django.views.d

我正在尝试用Django构建一个分析实时视频的网页。我成功地在特定链接上显示了分析结果(我添加了几行以添加图像分析)。 但是,分析在我打开链接时开始,当我关闭链接时,视频分析将停止。打开多个链接也会导致问题

我需要视频分析开始时,我添加了一个摄像头对象,并继续运行,直到服务器关闭。此外,需要并行地进行来自多个摄像机的分析

我正在寻找一些解决方案,偶然发现了“芹菜”和“django后台应用程序”。它们能解决我的问题吗?或者是否有任何建议的解决方案

谢谢:)

 from django.views.decorators import gzip
 from django.http import StreamingHttpResponse
 import cv2
 import threading

class VideoCamera(object):
  def __init__(self):
    self.video = cv2.VideoCapture(0)
    (self.grabbed, self.frame) = self.video.read()
    threading.Thread(target=self.update, args=()).start()

  def __del__(self):
    self.video.release()

  def get_frame(self):
    image = self.frame
    _, jpeg = cv2.imencode('.jpg', image)
    return jpeg.tobytes()

  def update(self):
    while True:
        (self.grabbed, self.frame) = self.video.read()


def gen(camera):
  while True:
    frame = camera.get_frame()
    yield(b'--frame\r\n'
          b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n\r\n')


@gzip.gzip_page
def livefe(request):
  try:
    cam = VideoCamera()
    return StreamingHttpResponse(gen(cam), content_type="multipart/x-mixed-replace;boundary=frame")
  except:  # This is bad! replace it with proper handling
    pass