【OpenCV学习笔记11】- 性能测量和改进技术

这是对于 OpenCV 官方文档的 核心操作的学习笔记。学习笔记中会记录官方给出的例子,也会给出自己根据官方的例子完成的更改代码,同样彩蛋的实现也会结合多个知识点一起实现一些小功能,来帮助我们对学会的知识点进行结合应用。
如果有喜欢我笔记的请麻烦帮我关注、点赞、评论。谢谢诸位。

学习笔记:
学习笔记目录里面会收录我关于OpenCV系列学习笔记博文,大家如果有什么不懂的可以通过阅读我的学习笔记进行学习。
【OpenCV学习笔记】- 学习笔记目录

内容

在图像处理中,由于我们每秒需要处理大量操作,因此我们的代码不仅要提供正确的解决方案,还要以最快的方式提供。所以,在本章中,我们将学习 衡量代码的性能 一些提高代码性能的技巧, 我们将看到以下函数:cv.getTickCount, cv.getTickFrequency等。

除了 OpenCV 之外,Python 还提供了一个时间模块,有助于记录代码执行时间。另一个模块配置文件有助于获取有关代码的详细报告,例如代码中每个函数花费的时间,调用函数的次数等。但是,如果您使用的是 IPython,所有这些功能都集成在一个用户友好的方式中。我们将看到一些重要的内容,有关更多详细信息,请查看其他资源部分中的链接。

使用 OpenCV 测量性能

cv.getTickCount函数返回参考事件(如机器开启时刻)到调用此函数的时钟周期数。因此,如果在函数执行之前和之后调用它,则会获得用于执行函数的时钟周期数。

cv.getTickFrequency函数返回时钟周期的频率,或每秒钟的时钟周期数。因此,要在几秒钟内找到执行时间,您可以执行以下操作。
示例代码:

# 性能测量和改进技术
# 使用 OpenCV 测量性能
import cv2

e1 = cv2.getTickCount()
# 执行你的代码
e2 = cv2.getTickCount()
time = (e2 - e1) / cv2.getTickFrequency()

我们将通过以下例子进行演示。下面的例子使用奇数大小从 5 到 49 的内核进行中值过滤。(不用关心结果会是什么样的,我们的目标是监测时间):
示例代码:

# 性能测量和改进技术
# 使用 OpenCV 测量性能
import cv2

img1 = cv2.imread('../image/2.2.jpg')
e1 = cv2.getTickCount()
for i in range(5, 49, 2):
    img1 = cv2.medianBlur(img1, i)
e2 = cv2.getTickCount()
t = (e2 - e1) / cv2.getTickFrequency()
print(t)
# 得到的结果是 0.419330167 秒
# 每一次的时间都是不一样的
# 同样你选择处理的图片所包含的像素点数、电脑的配置等等因素决定了处理时间。

注意 你可以用时间模块做同样的事情。使用 time.time()函数来替代

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜七天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值