Я действительно новичок в этом, так что прости меня, если вопрос кажется наивным. Я пытаюсь VideoCapture с моей веб-камеры на aws ec2 экземпляр с использованием opencv. Я пробовал многочисленные способы в Google и до сих пор не смог сделать это.
вот мой код
> import numpy as np import tensorflow as tf import math
> #from keras.models import load_model
> #from keras.utils import CustomObjectScope
> #from keras.initializers import glorot_uniform
> #import keras import cv2 from flask import Flask, request, jsonify, render_template from werkzeug import secure_filename from pathlib
> import Path import pickle TEMPLATES_AUTO_RELOAD = True
>
> @app.route('/trial') def trial():
> #import server
> cap=cv2.VideoCapture(-1)
> clientsocket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
> clientsocket.connect(('localhost',8089))
> if cap is None or not cap.isOpened():
> return render_template('cv/objectTracking.html', prediction_text='Employee Salary should be $ {}')
>
> while True:
> ret,frame=cap.read()
> # Serialize frame
> data = pickle.dumps(frame)
>
> # Send message length first
> message_size = struct.pack("L", len(data)) ### CHANGED
>
> # Then data
> clientsocket.sendall(message_size + data)
server.py
import pickle
import socket
import struct
import cv2
HOST = ''
PORT = 8089
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print('Socket created')
s.bind((HOST, PORT))
print('Socket bind complete')
s.listen(10)
print('Socket now listening')
conn, addr = s.accept()
data = b'' ### CHANGED
payload_size = struct.calcsize("L") ### CHANGED
while True:
# Retrieve message size
while len(data) < payload_size:
data += conn.recv(4096)
packed_msg_size = data[:payload_size]
data = data[payload_size:]
msg_size = struct.unpack("L", packed_msg_size)[0] ### CHANGED
# Retrieve all data based on message size
while len(data) < msg_size:
data += conn.recv(4096)
frame_data = data[:msg_size]
data = data[msg_size:]
# Extract frame
frame = pickle.loads(frame_data)
# Display
cv2.imshow('frame', frame)
waitKey(1)
я впервые запустил код python server.py и чем app.py. когда я нажимаю на ссылку "/ trial", я получаю сообщение об ошибке, потому что cap.isOpened имеет значение false. я запутался, как поступить, я пробовал множество разных способов. любая помощь будет принята с благодарностью. спасибо