https://wjh2307.tistory.com/11의 양방향 필터가 적용되는 시간을 구해보는데 적용해보겠습니다.
방법 1 : cv2.TickMeter() - opencv 제공
import cv2
import numpy as np
img = cv2.imread("imgs/Lenna.png")
img = cv2.resize(img, dsize=(0, 0), fx=2, fy=2)
tm = cv2.TickMeter() # 객체를 따로 생성해주어야합니다.
tm.start()
dst = cv2.bilateralFilter(img, -1, 10, 10)
dst2 = cv2.bilateralFilter(img, -1, 50, 10)
tm.stop()
ms = tm.getTimeMilli()
print(f'{ms}ms')
cv2.imshow("Lenna", img)
cv2.imshow("dst", dst)
cv2.imshow("dst2", dst2)
cv2.waitKey()
cv2.destroyAllWindows()
tm.start() : 시간 측정 시작
tm.stop() : 시간 측정 끝
tm.reset() : 시간 측정 초기화
tm.getTimeSec() : 측정 시간을 초 단위로 반환
tm.getTimeMilli() : 측정 시간을 밀리 초 단위로 반환
tm.getTimeMicro() : 측정 시간을 마이크로 초 단위로 반환
실행결과
- 353.6817 ms
- 327.4478 ms
- 365.5118 ms
- 383.523 ms
방법 2 : time.time() - time 패키지에서 제공
import cv2
import numpy as np
import time
img = cv2.imread("imgs/Lenna.png")
img = cv2.resize(img, dsize=(0, 0), fx=2, fy=2)
t1 = time.time()
dst = cv2.bilateralFilter(img, -1, 10, 10)
dst2 = cv2.bilateralFilter(img, -1, 50, 10)
t2 = time.time()
print(f'{(t2-t1)}s')
cv2.imshow("Lenna", img)
cv2.imshow("dst", dst)
cv2.imshow("dst2", dst2)
cv2.waitKey()
cv2.destroyAllWindows()
t2가 나중에 일어난 일이고 t1이 먼저 일어난 일이니 나중에 일어난 일 - 먼저 일어난 일로
t2의 시간과 t1의 시간을 구해서 뺀 것입니다.
실행결과
- 0.37560343742370605 s
- 0.3828999996185303 s
- 0.339125394821167 s
- 0.3650379180908203 s
제가 실행한 코드에선 cv2.TickMeter() : ms, time.time() : s로 단위를 다르게 출력해서 그렇지 거의 비슷한 시간입니다.
두 개의 비교를 편하게 하시려면 tm.getTimeMilli()를 tm.getTimeSec()로 바꿔주세요
편하신 것을 사용하시면 될 것 같아요.
'OpenCV-Python' 카테고리의 다른 글
OpenCV Python 히스토그램 분석 (0) | 2021.08.29 |
---|---|
OpenCV Python 영상에서의 연산(+밝기 조절, 차이 확인) (0) | 2021.08.27 |
OpenCV Python 선, 도형, 문자열 출력 (0) | 2021.08.24 |
OpenCV Python 필터링 - 잡음 제거 : 양방향(bilateral) 필터 (0) | 2021.08.23 |
OpenCV Python 이미지 영상 확대 축소 (0) | 2021.08.23 |