如何将OpenCv图像从摄像头流式传输到HTTP服务器

时间:2019-04-19 21:35:07

标签: python opencv

我试图将图像从RasPi上的网络摄像头发送到Http服务器,以便在我的机器人上打开图像时实际上可以获取该图像。我知道如何在窗口中使用openCV,而且我已经能够创建一个可以在浏览器中打开的服务器,我的问题仅仅是如何在所述服务器上显示openCV提要。

仅供参考,在尝试与RasPi战斗之前,我正在尝试在计算机上进行此操作,因此RasPi目前不是我关注的问题。

#Current Code
import cv2
from http.server import BaseHTTPRequestHandler, HTTPServer
import time
from io import StringIO
import PIL
from PIL import Image
hostName = 'localhost'
hostPort = 7153

#run camera
cap = cv2.VideoCapture(0)

def updateCamFeed():
    fourcc = cv2.VideoWriter_fourcc(*'XVID')
    out = cv2.VideoWriter('output.avi', fourcc, 20.0, (640,  480))

    while True:
         ret, frame = cap.read()


class MyServer(BaseHTTPRequestHandler):
     def do_GET(self):

        self.send_response(200)
        self.send_header("Content-type", "text/html")
        self.end_headers()
        self.wfile.write(bytes("<html><head><title>WebCam Display</title> 
 </head>", "utf-8"))
        self.wfile.write(bytes("<body><p><a href=\"output.avi\">Image</a> 
    </p>", "utf-8"))
        self.wfile.write(bytes("<p>It Worked!!!!! %s</p>" % self.path, 
    "utf-8"))
        self.wfile.write(bytes("</body></html>", "utf-8"))
def main():

# initialize server

    myServer = HTTPServer((hostName, hostPort), MyServer)
    print(time.asctime(), "Server Starts - %s:%s" % (hostName, hostPort))
    myServer.serve_forever()
    updateCamFeed()

if __name__ == '__main__':
    main()

这会将文件发送到服务器,但不会在窗口中显示

1 个答案:

答案 0 :(得分:0)

我的意思是在我的计算机上打开服务器,该服务器已连接到上述机器人。只是想帮助解决任何困惑