1.使用opencv衡量性能
cv.getTickCount函数返回从参考事件(如打开机器的那一刻)到调用此函数那一刻之间的时钟周期数。因此,如果在函数执行之前和之后调用它,则会获得用于执行函数的时钟周期数。
cv.getTickFrequency函数返回时钟周期的频率或每秒的时钟周期数。
衡量代码如下:
import cv2 as cv
e1 = cv.getTickCount() #开始时间
#测量实现代码
a = 1
b = 1
c = a + b
print(c)
e2 = cv.getTickCount() #结束时间
time = (e2 - e1)/ cv.getTickFrequency() #时间性能
print(time)
2.使用time模块time.time()函数
可以使用time.time() 代替 cv.getTickCount()函数。
import time
e1 = time.time() #开始时间
#测量代码
for i in range(100000000):
pass
e2 = time.time() #结束时间
time = (e2 - e1) #时间性能
print(time)
3.利用datetime获得当前日期进行计算。
使用datetime.datetime.now()函数
import cv2 as cv
import datetime
e1 = datetime.datetime.now() #开始时时间
#测量代码
img = cv.imread('1.JPG')
img = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
for i in range(100000):
z = cv .countNonZero(img)
e2 = datetime.datetime.now() #结束时间
time = (e2 - e1) #时间性能 是一个datetime结构 形如 0:00:01.667378
print(time.seconds)
4.使用time.clock()获得CPU执行时间
import time
import cv2 as cv
e1 = time.clock()
#测量代码
img = cv.imread('1.JPG')
img = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
for i in range(100000):
z = cv .countNonZero(img)
e2 = time.clock() #结束时间
time = (e2 - e1)
print(time)
4.在IPython中衡量性能
随着现在numpy的优化,cv中的有些函数,numpy以及能够达到相同的速度,例如如下两个:
z = cv.countNonZero(img)
z = np.count_nonzero(img)