你可以使用 Python 的 OpenCV 模組來讀取指定鏡頭的畫面,然後使用 Flask 模組建立一個簡單的 HTTP 伺服器,在網頁上顯示鏡頭畫面。
以下是一個簡單的程式碼範例:
import cv2
from flask import Flask, Response
app = Flask(__name__)
# 鏡頭裝置編號,如果只有一個鏡頭可以設為 0
camera_id = 0
# 設定 OpenCV 讀取鏡頭畫面的參數
camera = cv2.VideoCapture(camera_id)
camera.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
camera.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
def generate_frames():
while True:
success, frame = camera.read()
if not success:
break
else:
# 將畫面轉為 JPEG 格式
ret, buffer = cv2.imencode('.jpg', frame)
frame = buffer.tobytes()
# 使用 Flask 的 Response 物件回傳 JPEG 格式的畫面
yield (b'--frame\r\n'
b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n')
@app.route('/')
def index():
# 使用 Response 物件顯示畫面,MIME 類型為 multipart/x-mixed-replace
return Response(generate_frames(), mimetype='multipart/x-mixed-replace; boundary=frame')
if __name__ == '__main__':
# 啟動 Flask 伺服器,監聽 127.0.0.1:8088
app.run(host='127.0.0.1', port=8088, debug=True)
執行這個程式碼後,在網頁上輸入 http://127.0.0.1:8088/
就可以看到鏡頭畫面了。如果想要停止程式,可以按 Ctrl+C。