반응형
황선규 박사님의 OpenCV 강의를 공부하면서 정리하였습니다.
연산 시간 측정 방법
컴퓨터 비전은 대용량 데이터를 다루고, 일련의 과정을 통해 최종 결과를 얻으므로 매 단계에서 연산 시간을 측정하여 관리할 필요가 있습니다.
1. 연산 시간 측정 - cv2.TickMeter
OpenCV에서는 TickMeter 클래스를 이용하여 연산 시간을 측정할 수 있습니다.
[함수 설명]
cv2.TickMeter() -> tm
• tm: cv2.TickMeter 객체
cv2.TickMerer() 클래스 안에 있는 메소드를 확인하겠습니다.
• tm.start() : 시간 측정 시작
• tm.stop() : 시간 측정 끝
• tm.reset() : 시간 측정 초기화
• tm.getTimeSec() : 측정 시간을 초 단위로 반환
• tm.getTimeMilli() : 측정 시간을 밀리 초 단위로 반환
• tm.getTimeMicro() : 측정 시간을 마이크로 초 단위로 반환
tm 클래스를 이용하여 윤곽선 영상을 출력하는데에 걸리는 시간을 측정하도록 하겠습니다.
[예제 코드]
img = cv2.imread('hongkong.jpg')
tm = cv2.TickMeter()
# 윤곽선이 작동하는 시간을 측정하려고 함
tm.reset()
tm.start()
t1 = time.time()
edge = cv2.Canny(img, 50, 150)
tm.stop()
ms = tm.getTimeMilli() # 밀리 초 단위 시간을 받아옴
print('time:', (time.time() - t1) * 1000)
print('Elapsed time: {}ms.'.format(tm.getTimeMilli()))
[결과]
649ms가 걸렸습니다. 이는 매우 느린 속도입니다.
반응형
'Python > 파이썬 OpenCV 공부' 카테고리의 다른 글
[파이썬 OpenCV] 영상의 밝기 조절 - cv2.add, np.clip (0) | 2020.09.27 |
---|---|
[파이썬 OpenCV] 동영상 전환 이펙트, 디졸브(dissolve)효과 (1) | 2020.09.27 |
[파이썬 OpenCV] 트랙바를 이용한 그레이스케일 레벨 표현하기 - cv2.createTrackbar (0) | 2020.09.27 |
[파이썬 OpenCV] 마우스를 이용해 그리기 - cv2.setMouseCallback (0) | 2020.09.27 |
[파이썬 OpenCV] 키보드 입력으로 출력된 영상 반전 시키기 - cv2.waitkey, ord() 함수 (0) | 2020.09.27 |