0
点赞
收藏
分享

微信扫一扫

OpenCV-Python learning-7.运算性能

alanwhy 2022-12-27 阅读 182


本节说明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>

OpenCV-Python learning-7.运算性能_python

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>

OpenCV-Python learning-7.运算性能_时钟周期_02

计时工具%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)



举报

相关推荐

0 条评论