在Flask web服务器上显示编码的OpenCV图像,可以通过以下步骤实现:
from flask import Flask, render_template, Response
import cv2
app = Flask(__name__)
def generate_frames():
cap = cv2.VideoCapture(0) # 打开摄像头,参数为摄像头索引,0表示默认摄像头
while True:
ret, frame = cap.read() # 读取摄像头帧
if not ret:
break
# 在帧上进行图像处理或分析
ret, buffer = cv2.imencode('.jpg', frame) # 将帧编码为JPEG格式
frame = buffer.tobytes() # 将编码后的帧转换为字节流
yield (b'--frame\r\n'
b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n') # 生成器返回帧的字节流
cap.release() # 释放摄像头
@app.route('/')
def index():
return render_template('index.html')
@app.route('/video_feed')
def video_feed():
return Response(generate_frames(),
mimetype='multipart/x-mixed-replace; boundary=frame')
<!DOCTYPE html>
<html>
<head>
<title>OpenCV Video Streaming</title>
</head>
<body>
<h1>OpenCV Video Streaming</h1>
<img src="{{ url_for('video_feed') }}" width="640" height="480">
</body>
</html>
if __name__ == '__main__':
app.run(debug=True)
通过以上步骤,Flask web服务器将会在根路径上显示实时的编码的OpenCV图像。
没有搜到相关的沙龙