Существует ли ipython эквивалент для erlang?

Подача видео не прекращается (точнее, в моем случае: это пустое окно не гаснет) при нажатии клавиши «q» на клавиатуре, хотя для этого написан код

[ 110]

В функции work_with_captured_video() вы возвращаете статус True до cv2.waitKey(1). По сути, это должно быть что-то вроде этого,

def work_with_captured_video():
    while True:
        ret, frame = camera.read()
        if not ret:
            print("Camera is disconnected!")
            camera.release()
            return False
            #break --> Not required.
        else:
            cv2.imshow('frame', frame)

        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
     return True

Как только вы закончите с циклом while, вы вернете статус True.

  1. Хотя я написал код cv2.imshow для просмотра видеопотока, я не смог увидеть ни одного видеопотока.
while True:
    camera = cv2.VideoCapture('rtsp://<ip specific to my camera>')
    if camera.isOpened():
        print('Camera is connected')
        #call function
        response = work_with_captured_video()
        if response == False:
            time.sleep(10)
            continue
    else:
        print('Camera not connected')
        camera.release()
        time.sleep(10)
        continue

Пожалуйста, передайте функции work_with_captured_video() аргумент camera. Функция не передается никаким аргументом, поэтому строка if not ret: имеет переменную ret как False.

def work_with_captured_video(camera):
    while True:
        ret, frame = camera.read()
        if not ret:
            print("Camera is disconnected!")
            camera.release()
            return False
        else:
            cv2.imshow('frame', frame)

        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    return True

while True:
    camera = cv2.VideoCapture('rtsp://<ip specific to my camera>')
    if camera.isOpened():
        print('Camera is connected')
        #call function
        response = work_with_captured_video(camera)
        if response == False:
            time.sleep(10)
            continue
    else:
        print('Camera not connected')
        camera.release()
        time.sleep(10)
        continue

После внесения этих изменений ваш код будет работать.

6
задан wr. 11 May 2009 в 08:07
поделиться

2 ответа

Yes it is :) http://erlang.org/doc/man/escript.html

$ cat /tmp/test
#!/usr/bin/env escript
main(_) ->
io:format("Hello World!\n").
$ chmod +x /tmp/test
$ /tmp/test
Hello World!
3
ответ дан 17 December 2019 в 04:51
поделиться

Создать модуль, запускающий процесс автоматической загрузки изменений кода в вашу оболочку, должно быть довольно просто. В Erlang есть встроенная поддержка такого рода вещей. Таким образом, каждый раз, когда вы перекомпилируете код, он автоматически загружается в вашу оболочку, что избавляет от необходимости набирать c ('module.erl'). сами. Возможно, вы даже можете заставить его отслеживать изменения файлов и автоматически компилировать их для вас. см.

http://github.com/toddlipcon/mochiweb/blob/29d6ffd58aa2cd175f84cadfc1ce1697f366ef62/src/reloader.erl

для примера в действии.

В настоящее время этот модуль просто ищет перекомпилированные модули, но было бы тривиально заставить его искать измененные исходные файлы и перекомпилировать их для вас.

1
ответ дан 17 December 2019 в 04:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: