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

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   
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值