#python #html #opencv #flask
Вопрос:
У меня есть некоторые результаты обнаружения открытых объектов cv, которые мне нужны на веб-странице. Ниже приведен соответствующий блок кода.
Колба OpenCV
def gen_frames():
#Main code body was here but removed because irrelevant to the post
ret, buffer = cv2.imencode('.jpg', frame)
frame = buffer.tobytes()
yield (b'--framern'
b'Content-Type: image/jpegrnrn' frame b'rn') # concat frame one by one and show result
app = Flask(__name__)
@app.route('/video_feed')
def video_feed():
#Video streaming route. Put this in the src attribute of an img tag
return Response(gen_frames(), mimetype='multipart/x-mixed-replace; boundary=frame')
@app.route('/')
def index():
"""Video streaming home page."""
return render_template('index.html')
if __name__ == '__main__':
app.run(host='0.0.0.0',threaded=True)
HTML (index.html)
<html>
<body>
<img src="{{ url_for('video_feed') }}">
</body>
</html>
Видеовыход отображается на веб — странице, как и ожидалось.
Однако при попытке просмотреть эти выходные данные через iframe на другой веб-странице обнаружение объекта не срабатывает.
[Вот как должно выглядеть обнаружение объекта.][1]
[Вот что происходит после просмотра через iframe.][2]
Терминал также выдает следующую ошибку.
Assertion avci->compat_decode_consumed == 0 failed at libavcodec/decode.c:731
Комментарии:
1. и где же
object detection
код? Все проблемы могут быть внутриobject detection
. Код в вашем вопросе отправляет только изображение, поэтому он не может изменять поля на изображении. Все проблемы должны возникнуть до того, как вы его отправите.2. @furas Я добавил код в
3. что такое
nomi_izi
? Я не могу найти его в Интернете. Вы должны поместить код в виде текста, а не ссылки на внешнюю страницу. И если бы вы поместили его в pastebin, вы могли бы выбратьhighlight: Python
, и он был бы более читабельным.4. всегда помещайте полное сообщение об ошибке (начинающееся со слова «Обратная связь») в вопрос (не комментарий) в виде текста (не скриншот, не ссылка на внешний портал). Есть и другая полезная информация.
5. @furas Я исправил проблему.
Ответ №1:
Попытка просмотреть выходные данные, выполняемые через iframe, запускает два экземпляра приложения, если открыта исходная html-страница. Что создает проблемы с потоковой передачей.
Таким образом, если вы собираетесь просматривать его только через iframe, держите открытым один экземпляр веб-страницы.