Openev3 python基础学习4——基础滤波算法
2017-07-30 16:44
232 查看
概念说明
观察图像中这些变化的频率就构成了另一条分类图像的方法。这个观点称为频域。而通过观察图像灰度分布来分类图像称为空间域。频域分析将图像分成从低频到高频的不同部分。低频对应图像强度变化小的区域,而高频是图像强度变化非常大的区域。目前已存在若干转换方法,如傅立叶变换或余弦变换,可以用来清晰的显示图像的频率内容。注意,由于图像是一个二维实体,所以其由水平频率(水平方向的变化)和竖直频率(竖直方向的变化)共同组成。
在频率分析领域的框架中,滤波器是一个用来增强图像中某个波段或频率并阻塞(或降低)其他频率波段的操作。低通滤波器是消除图像中高频部分,但保留低频部分。高通滤波器消除低频部分
基础算法
用低通滤波来平滑图像
低通滤波器的目标是降低图像的变化率。如将每个像素替换为该像素周围像素的均值。这样就可以平滑并替代那些强度变化明显的区域。高斯模糊
在某些情况下,需要对一个像素的周围的像素给予更多的重视。因此,可通过分配权重来重新计算这些周围点的值。这可通过高斯函数(钟形函数,即喇叭形数)的权重方案来解决。区别
低通滤波与高斯滤波的不同之处在于:低通滤波中,滤波器中每个像素的权重是相同的,即滤波器是线性的。而高斯滤波器中像素的权重与其距中心像素的距离成比例。使用中值滤波消除噪点
前面介绍的是线性过滤器,这里介绍非线性过滤器——中值滤波器。中值滤波器对消除椒盐现象特别有用。双边滤波(Bilateral filter)
是一种可以保边去噪的滤波器。之所以可以达到此去噪效果,是因为滤波器是由两个函数构成。一个函数是由几何空间距离决定滤波器系数。另一个由像素差值决定滤波器系数。代码
import cv2 import numpy as np img = cv2.imread("test.jpg") #低通滤波 result_1 = cv2.blur(img,(5,5)) #低通滤波。参数一是输入的待处理图像,参数2是低通滤波器的大小 cv2.imshow("blur",result_1) #高斯模糊 gaussianResult = cv2.GaussianBlur(img,(5,5),1.5) cv2.imshow("Gaussian",gaussianResult) #中通滤波 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 salted = salt(img,500) cv2.imshow("Salt",salted) result_2 = cv2.medianBlur(img,5) #中通滤波。第一个参数是待处理图像,第二个参数是孔径的尺寸,一个大于1的奇数 cv2.imshow("MedianBlur",result_2) #双边滤波 blur_2=cv2.bilateralFilter(img,9,75,75) cv2.imshow("bilateralFilter",blur_2) cv2.waitKey(0) cv2.destroyAllWindows()
参考:
【1】http://blog.csdn.net/sunny2038/article/details/9155893
相关文章推荐
- 【备忘】冲击年薪50万之从数学基础python机器学习到深度学习算法学习路线视频教程 共321G
- python 深度学习、python神经网络算法、python数据分析、python神经网络算法数学基础教学
- 【备忘】冲击年薪50万之从数学基础python机器学习到深度学习算法学习路线视频教程
- 【备忘】2017年最新北风网零基础学习机器学习(Python语言、算法、Numpy库、MatplotLib)视频教程)
- Python常用算法学习基础教程
- 【备忘】2017年最新北风网零基础学习机器学习(Python语言、算法、Numpy库、MatplotLib)视频教程)
- 【备忘】2018年最新北风网零基础学习机器学习(Python语言、算法、Numpy库、MatplotLib)视频教程)
- 【Python2.7 学习笔记】Python 基础(二)
- Python 学习笔记-基础总结
- 书山有路之学习算法导论(一)--基础知识
- Python 基础学习篇
- 七月算法深度学习 第三期 学习笔记-第一节 数学基础
- Python基础学习笔记之二
- Python 学习笔记(一):基础与入门
- 零基础学习Python 作业 第1章
- 台大基础课程学习笔记——PLA算法1
- 1.Python基础学习之字符串
- Python基础知识学习重点内容
- C++基础算法学习——熄灯问题
- 算法基础之python实现动态规划中数字三角形和最长上升子序列问题