opencv学习之程序性能检测及优化

cv2.getTickCount()
函数返回从参考点到这个函数被执行的时钟数。所以当你在一个函数执行前后都调用它的话,你就会得到这个函数的执行时间(时钟数)。
cv2.getTickFrequency()
返回时钟频率,或者说每秒钟的时钟数。所以你可以按照下面的方式得到一个函数运行了多少秒

import cv2
import numpy as np


e1 = cv2.getTickCount()
# your code execution
e2 = cv2.getTickCount()
time = (e2 - e1)/ cv2.getTickFrequency()
print(time)

#2.666665481482008e-06
import cv2
import numpy as np
img1 = cv2.imread('1.jpg')
e1 = cv2.getTickCount()
for i in range(5,49,2):                                 #用窗口大小不同(5,7,9)的核函数来做中值滤波
    img1 = cv2.medianBlur(img1,i)
e2 = cv2.getTickCount()
t = (e2 - e1)/cv2.getTickFrequency()
print (t)

#0.3206749685889029

注意:
你可以用time模块实现上面功能,需要用的函数是time.time()而不是cv2.getTickCount,比较两个结果的差别。

cv2.useOptimized() 来查看优化是否被开启了
cv2.setUseOptimized() 来开启优化。

import cv2
import numpy as np
img = cv2.imread('1.png')
print(cv2.useOptimized()) # True
 
# % timeit res = cv2.medianBlur(img, 49)
# 10 loops, best of 3: 34.9 ms per loop
 
cv2.setUseOptimized(False)
print(cv2.useOptimized()) # False
 
# % timeit res = cv2.medianBlur(img, 49)
# 10 loops, best of 3: 64.1 ms per loop

你可能感兴趣的:(opencv学习)