OpenCV-Python learning-7.运算性能
原创
©著作权归作者所有:来自51CTO博客作者李上花开的原创作品,请联系作者获取转载授权,否则将追究法律责任
本节说明opencv-python对于性能的度量和优化 。
以下为代码部分:
%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>
getTickCount()指令
t1=cv2.getTickCount() #返回操作系统启动到现在时钟周期数
t1
t2=cv2.getTickCount() #返回操作系统启动到现在时钟周期数
t2
t=(t2-t1)/cv2.getTickFrequency() #时钟周期数/频率,单位秒
t
img2=cv2.medianBlur(img,9) #中值滤波
plt.imshow(cv2.cvtColor(img2,cv2.COLOR_BGR2RGB))
<matplotlib.image.AxesImage at 0x1f8ef71d748>
计时工具%timeit指令
%timeit y=x**2 # 使用 %timeit 多次运行某条命令从而进行比较
241 ns ± 2.8 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
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优化代码
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)#禁用优化代码
%timeit res = cv2.medianBlur(img,299)
459 ns ± 18.7 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)