cv2.getTickCount()函数返回从参考点到这个函数被执行的时钟数。所以当你在一个函数执行前后都调用它的话,你就会的到这个函数的执行时间(时钟数)。
cv2.getTickFrequency()返回时钟频率,或者说每秒的时钟数。
img1 = cv2.medianBlur(img1,i)中值滤波,第一个参数是待处理图像,第二个参数是孔径的尺寸,一个大于1的奇数。比如这里是5,中值滤波器就会使用5×5的范围来计算。即对像素的中心值及其5×5邻域组成了一个数值集,对其进行处理计算,当前像素被其中值替换掉。
中值滤波是对一个滑动窗口内的像素灰度值排序,用其中值代替窗口中心的像素的原来灰度值,它是一种非线性的图像平滑法,他对脉冲干扰级椒盐噪声的抑制效果很好,在一直随机噪声的同时能有效保护边缘少受模糊。
本文中的循环只是为了计算时间,没有实际意义。
import cv2
import numpy as np
img1 = cv2.imread('img_wlk.jpg')
e1 = cv2.getTickCount()
for i in xrange(5,49,2):
img1 = cv2.medianBlur(img1,i)
e2 = cv2.getTickCount()
t = (e2-e1)/cv2.getTickFrequency()
print t
cv2.imshow('hhh',img1)
cv2.waitKey(0)
cv2.destroyAllWindows()
下边的程序是用来比较python中的优化开启与否,程序运行所需时间的差别,实验证明优化与否,对于程序的运行时间有很大差别
import cv2
import numpy as np
cv2.setUseOptimized(False)
#cv2.setUseOptimized(True)
img1 = cv2.imread('img_wlk.jpg')
e1 = cv2.getTickCount()
for i in xrange(5,49,2):
img1 = cv2.medianBlur(img1,i)
e2 = cv2.getTickCount()
t = (e2-e1)/cv2.getTickFrequency()
print t
#cv2.imshow('hhh',img1)
#cv2.waitKey(0)
#cv2.destroyAllWindows()
a = cv2.useOptimized()
print a