您的位置:首页 > 运维架构

使用OpenCV检测程序效率

2017-05-03 17:15 148 查看
cv2.getTickCount()函数返回从参考点到这个函数被执行的时钟数;cv2.getTickFrequency()返回时钟频率。

 

t1=cv2.getTickCount()

t2=cv2.getTickCount()

time=(t2-t1)/cv2.getTickFrequency()

 

示例:使用窗口大小不同的(5,7,9..)的核函数做中值滤波:

 

#-*-coding:utf-8-*-

Import cv2

Import numpy as np

 

Img1=cv2.imread(“roi.jpg”)

t1=cv2.getTickCount()

for  i in  xrange(5,49,2)

         img1=cv2.medianBlur(img1,i)

t2=cv2.getTickCount()

time=(t2-t1)/cv2.getTickFrequency()

 
函数返回处理结果,第一个参数是待处理图像,第二个参数是孔径的尺寸,一个大于1的奇数。比如这里是i,中值滤波器就会使用i×i的范围来计算。即对像素的中心值及其i×i邻域组成了一个数值集,对其进行处理计算,当前像素被其中值替换掉。如果在某个像素周围有白色或黑色的像素,这些白色或黑色的像素不会选择作为中值(最大或最小值不用),而是被替换为邻域值。
 

由于中值滤波不会处理最大和最小值,所以就不会受到噪声的影响。相反,如果直接采用blur进行均值滤波,则不会区分这些噪声点,滤波后的图像会受到噪声的影响。中值滤波器在处理边缘也有优势。但中值滤波器会清除掉某些区域的纹理(如背景中的树)。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: