OpenCV-Python learning-7.运算性能

本文介绍如何使用OpenCV进行图像处理,并演示了性能度量的方法,包括使用getTickCount获取时钟周期数来计算时间间隔,以及利用%timeit指令评估代码执行效率。此外,还探讨了通过设置优化选项来提升OpenCV函数的执行速度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本节说明opencv-python对于性能的度量和优化。你也可以iframe外链查看



以下为代码部分:

%matplotlib inline
import cv2
import matplotlib.pyplot as plt
img=cv2.imread('e:/rotman.jpg')
plt.imshow(cv2.cvtColor(img,cv2.COLOR_BGR2RGB)) #显示原图
<matplotlib.image.AxesImage at 0x1f8ef631a58>

png

getTickCount()指令

t1=cv2.getTickCount() #返回操作系统启动到现在时钟周期数
t1
762915676900
t2=cv2.getTickCount() #返回操作系统启动到现在时钟周期数
t2
762917216047
t=(t2-t1)/cv2.getTickFrequency() #时钟周期数/频率,单位秒
t
0.631445441186003
import copy
img2=copy.copy(img)
img2=cv2.medianBlur(img,9) #中值滤波
plt.imshow(cv2.cvtColor(img2,cv2.COLOR_BGR2RGB))
<matplotlib.image.AxesImage at 0x1f8ef71d748>

png

计时工具%timeit指令

x = 5
%timeit y=x**2 # 使用 %timeit 多次运行某条命令从而进行比较
241 ns ± 2.8 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
%timeit y=x*x
46.5 ns ± 0.124 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
import numpy as np
%timeit y=np.square(x)
710 ns ± 5.22 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)

useOptimized?

cv2.useOptimized()#是否支持opencv的如sse2、avx优化代码
True
img=cv2.imread('E:\bizhi.jpg')
cv2.setUseOptimized(True)
%timeit res = cv2.medianBlur(img,299)
446 ns ± 1.82 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
cv2.setUseOptimized(False)#禁用优化代码
cv2.useOptimized()
False
%timeit res = cv2.medianBlur(img,299)
459 ns ± 18.7 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值