#python #http #opencv #gstreamer
#python #http #opencv #gstreamer
Вопрос:
У меня есть поток с IP-камеры, который я передаю для обработки изображений с помощью OpenCV. В настоящее время, как только изображение обработано, я выводю его с помощью cv2.imshow()
во всплывающем окне, как показано ниже.
cap = cv2.VideoCapture('http://76.75.8.111/mjpg/video.mjpg')
while True:
hasframe, image = cap.read()
#image=cv2.resize(image, (620, 480))
# do some more image processing here.
cv2.imshow(window_title, image)
Я хочу отправить обработанное изображение на определенный веб-адрес, передав вывод вышеупомянутого кода в метод VideoCapture cv2. Для этой цели я мог бы в конечном итоге использовать конвейеры gstreamer, но я не смог найти учебное пособие по python.
def main():
global capture
capture = cv2.VideoCapture() #gstreamer pipelines here?
capture.set(cv2.CAP_PROP_FRAME_WIDTH, 320);
capture.set(cv2.CAP_PROP_FRAME_HEIGHT, 240);
try:
server = HTTPServer(('',9090),CamHandler)
print("server started")
server.serve_forever()
except KeyboardInterrupt:
capture.release()
server.socket.close()
Пожалуйста, помогите или укажите мне, где я могу найти подобную реализацию.
Комментарии:
1. в чем же проблема ? Что у тебя есть в
CamHandler
? Я создал только потоковое изображение PyGame (с сервера PyGame на клиент PyGame), используя сокет и собственный протокол: github.com/furas/python-examples/tree/master/pygame /…2. фурас, проблема была решена — мне вообще не нужно было использовать gstreamer. Спасибо, что поделились своей реализацией потоковой передачи.
CamHandler
Является классом в этом модуле github.com/berak/opencv_smallfry/blob/master/mjpg_serve.py