opencv for python (7) 计算中值滤波函数程序的运行时间,及简要解释中值滤波函数

来源:互联网 发布:优惠券由来 知乎 编辑:程序博客网 时间:2024/06/07 22:05

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   
原创粉丝点击