Как получить время, которое код провел в конкретной конструкции if-elif - PullRequest
1 голос
/ 04 октября 2019

enter image description here Я предоставляю код проекта для локализации радужной оболочки. Поэтому здесь я хотел бы получить количество времени, которое человек проводит, глядя в определенном направлении. Более того, я хочу получить все время, которое код проводит в конкретной конструкции if-elif.

Я пробовал что-то с помощью модуля timeit. Но я не смог получить время, когда код входит в раздел if ивремя, в которое он покидает цикл while.

                thresh = (five_eye[1]-one_eye[1])
                print("thresh:",thresh)
                # if 13<thresh <16:
                #     print('CENTER')
                #     cv2.putText(frameClone, 'CENTER', 
(90,40),cv2.FONT_HERSHEY_SIMPLEX, 1.5, (0, 0, 255), 2)
                #     single_eye_state.append(index)
                #     single_eye_state.append('CENTER')
                if 10<thresh<=13:
                    start = timeit.timeit()
                    print('Looking Down 1 Feet')
                    cv2.putText(frameClone,'Looking Down 1 Feet', 
(90,40),cv2.FONT_HERSHEY_SIMPLEX, 1.5, (0, 0, 255), 2)
                    single_eye_state.append(index)
                    single_eye_state.append('DOWN1')
                    end = timeit.timeit()
                    print(end - start)
                elif 7<thresh<=10:
                    start = timeit.timeit()
                    print("Looking Down 2 Feet")
                    cv2.putText(frameClone,'Looking Down 2 Feet', 
(90,40),cv2.FONT_HERSHEY_SIMPLEX, 1.5, (0, 0, 255), 2)
                    single_eye_state.append(index)
                    single_eye_state.append('DOWN2')
                    end = timeit.timeit()
                    print(end - start)

Требуется общее время, которое код проводит в цикле while.

1 Ответ

2 голосов
/ 04 октября 2019

Будет запущен только один из разделов, if или elif. Так что лучше просто обернуть конструкцию if-elif и получить время, которое вы хотите получить следующим образом:

start = timeit.timeit()
if condition:
    ....
elif:
    ....
end = timeit.timeit()
print(end-start)

В случае, если вам нужно общее время для нескольких секций:

total = 0
if condition:
    start = timeit.timeit()
    ....
    end = timeit.timeit()
    total += end - start
elif:
    start = timeit.timeit()
    ....
    end = timeit.timeit()
    total += end - start
print(total)

Примечание: Будет запущен только один из разделов, т. Е. Либо на elifЯ добавил код только для ясности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...