vim+python+OpenCV学习六 : 滤波初级
2016-03-05 22:39
477 查看
#coding=utf-8 #用低通滤波来平滑图像,低通滤波器的目标是降低图像的变化率。 #将每个像素替换为该像素周围像素的均值。 #这样就可以平滑并替代那些强度变化明显的区域 import cv2 img=cv2.imread('test5.jpg') ''' 其中dst是blur处理后返回的图像,参数一是输入的待处理图像, 参数2是低通滤波器的大小。其后含有几个可选参数, 用来设置滤波器的细节, 下面这个滤波器也可以达到同样的效果 result1 = cv2.boxFilter(img, -1, (5, 5)) ''' result1=cv2.blur(img,(5,5)) #这个是低通滤波器 result2=cv2.blur(img,(15,15)) #这个是低通滤波器 cv2.imshow('Origin',img) cv2.imshow('Blur5*5',result1) cv2.imshow('Blur15*15',result2) cv2.waitKey(0) cv2.destroyAllWindows()
#coding=utf-8 #高斯滤波的效果比低通滤波的效果好很多,辨识度要高 ''' 高斯模糊: 在某些情况下,需要对一个像素的周围的像素给予更多的重视。 因此,可通过分配权重来重新计算这些周围点的值。 这可通过高斯函数(钟形函数,即喇叭形数)的权重方案来解决。 低通滤波与高斯滤波的不同之处在于:低通滤波中,滤波器中每个像素的权重是相同的, 即滤波器是线性的。而高斯滤波器中像素的权重与其距中心像素的距离成比例。 ''' import cv2 img=cv2.imread('test5.jpg') gaussianResult1 = cv2.GaussianBlur(img,(5,5),1.5) #这个是高斯滤波器 gaussianResult2 = cv2.GaussianBlur(img,(15,15),1.5) cv2.imshow('Origin',img) cv2.imshow('GaussianBlur(img,(5,5),1.5)',gaussianResult1) cv2.imshow('GaussianBlur(img,(15,15),1.5) ',gaussianResult2) cv2.waitKey(0) cv2.destroyAllWindows()
#coding=utf-8 import numpy as np ''' 中值滤波: 前面介绍的是线性过滤器,这里介绍非线性过滤器——中值滤波器。 由于中值滤波器对消除椒盐现象特别有用。所以我们使用 椒盐函数先对图像进行处理,将处理结果作为示例图片。 函数返回处理结果,第一个参数是待处理图像,第二个参数是孔径的尺寸, 一个大于1的奇数。 比如这里是5,中值滤波器就会使用5×5的范围来计算。即对像素的中心值及其5×5邻域组成 了一个数值集,对其进行处理计算,当前像素被其中值替换掉。 ''' import cv2 def salt(img, n): for k in range(n): i = int(np.random.random() * img.shape[1]); j = int(np.random.random() * img.shape[0]); if img.ndim == 2: img[j,i] = 255 elif img.ndim == 3: img[j,i,0]= 255 img[j,i,1]= 255 img[j,i,2]= 255 return img img=cv2.imread('test5.jpg') result = salt(img, 500) median = cv2.medianBlur(result, 3) #这个是中值滤波 cv2.imshow('Salt',result) cv2.imshow('MedianBlur ',median) cv2.waitKey(0) cv2.destroyAllWindows()
相关文章推荐
- 天灵灵,地灵灵,但愿这个一定灵!!!python调用win32api,启动应用程序窗口
- Python Select 解析
- python通过protobuf实现rpc
- Python图像处理库PIL的ImageSequence模块介绍
- python基础之hello world
- python函数的参数匹配
- Twisted中的putChild和getChild
- vim+python+OpenCV学习六 : 形态学初级
- python模拟登陆
- Python中lambda表达式学习
- 集体智慧编程——协同过滤推荐算法-Python实现
- 在 Mac OS X 10.9 搭建 Python3 科学计算环境
- Python和OpenCV环境配置
- 主成分分析法以及python实现
- python的异常处理及支持中文注释
- Python 代码调试技巧
- python解析xml文件
- Python的单引号、双引号和三引号的字符串
- python安装mysqldb
- python基础(List,Dictionary,Random,循环,Lambda,Tumple)