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) 

京公网安备 11010502036488号