python-opencv Tutorials 一码人翻译(9)核心操作 性能测试

  • 目标

在图像处理过程中,由于您每秒处理大量的操作,所以您的代码不仅提供了正确的解决方案,而且还以最快的方式提供了。在这一章中,你们将学习

来测量代码的性能。

一些提高代码性能的技巧。

你会看到这些函数:cv.getTickCount, cv.getTickFrequency等等。

除了OpenCV之外,Python还提供了一个模块时间,这有助于度量执行的时间。另一个模块概要文件有助于获得关于代码的详细报告,比如代码中每个函数花费了多少时间,调用了多少次函数等等。但是,如果您使用的是IPython,所有这些特性都以一种用户友好的方式集成在一起。我们将会看到一些重要的内容,更多的细节,请检查附加资源部分中的链接。

  • 测量性能和OpenCV

cv.getTickCount 函数返回一个引用事件(如力矩机器被开启)后的时钟周期的数量,直到这个函数被调用的时刻。所以如果你在函数执行之前和之后调用它,你就会得到用来执行一个函数的时钟周期的数量。

cv.getTickFrequency频率函数返回时钟周期的频率,或者每秒时钟周期的次数。因此,为了在几秒钟内找到执行的时间,您可以执行以下操作:一些提高代码性能的技巧。

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

例子 

import cv2 as cv
import numpy as np
from matplotlib import pyplot as plt
img1 = cv.imread('pikachu2.jpg')




e1 = cv.getTickCount()
for i in range(5,49,2):
    img1 = cv.medianBlur(img1,i)
e2 = cv.getTickCount()
t = (e2 - e1)/cv.getTickFrequency()
print( t )

# Result I got is 3.7553666074876566 seconds

结果

​3.7553666074876566

请注意

你也可以对时间模块做同样的事情。而不是简历。getTickCount,使用time.time()函数。然后取两倍的差。

猜你喜欢

转载自blog.csdn.net/qq_41905045/article/details/81321049