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)