当前位置:文档之家› k近邻平滑滤波

k近邻平滑滤波


%subplot(2,3,5),imshow(b),title('高斯 k近邻均值'); c=emuchKNNmedFilter(J2, 3, 5);
subplot(2,3,6),imshow(c),title('椒盐 k近邻中值');
2017/7/3

2017/7/3
边界保持类平滑滤波器
为了解决图像模糊问题,可以在进行平滑处理 时,首先判别当前像素是否为边界上的点,如 果是,则不进行平滑处理;如果不是,则进行 平滑处理。
这样就可以保持原有的灰度特性。
2017/7/3
原理
在一个与待处理像素邻近的范围内,寻找 出其中像素值与之最接近的K个邻点, 将 该K个邻点的均值(中值)替换原像素值。
% input - 输入图像矩阵;n - 模板大小;k - 近邻数 % output - 滤波处理后的图像矩阵 function output = emuchKNNMeanFilter(input, n, k) [row, col] = size(input); edgeWidth = floor(n / 2); output = zeros(row - edgeWidth * 2, col - edgeWidth * 2); for i = 1 + edgeWidth : row - edgeWidth for j = 1 + edgeWidth : col - edgeWidth mask = input(i - edgeWidth : i + edgeWidth,... j - edgeWidth : j + edgeWidth); center = input(i, j); vertex = Matrix2Vertex(mask); neighbour = GetNeighbour(vertex, center, k); output(i - 1, j - 1) = mean(neighbour); %output(i - 1, j - 1) = median(neighbour); end end end
subplot(2,3,ቤተ መጻሕፍቲ ባይዱ),imshow(b),title('高斯 k近邻中值'); %b = emuchKNNMeanFilter(J1, 3, 5);
subplot(2,3,1),imshow(I2),title('原图像'); subplot(2,3,2),imshow(J1),title('加高斯噪声'); subplot(2,3,3),imshow(J2),title('加椒盐噪声'); b = emuchKNNmedFilter(J1, 3, 5);
2017/7/3
均值滤波
定义
均值滤波方法是,对待处理的当前像素,选择一个模板,该模板为其邻近的若干个 像素组成,用模板的均值来替代原像素的值的方法。 如下图,1~8为(x,y)的邻近像素。
权系数矩阵模板 g = (f(x-1,y-1) + f(x,y-1)+ f(x+1,y-1) + f(x-1,y) + f(x,y) + f(x+1,y) + f(x-1,y+1) + f(x,y+1) + f(x+1,y+1))/9 方法优缺点 优点:算法简单,计算速度快; 缺点:降低噪声的同时使图像产生模糊,特别是景物的边缘和细节部分。
2017/7/3
实现算法
1) 以待处理像素为中心,作一个m*m的作用模 板。 2) 在模板中,选择K个与待处理像素的灰度 差为最小的像素。 3) 将这K个像素的灰度均值(中值)替换掉原 来的像素值。
I=imread('house.png');I2=im2double(I); J1=imnoise(I2,'gaussian',0,0.02); J2=imnoise(I2,'salt & pepper',0.02);
2017/7/3
中值滤波
定义
中值滤波方法是,对待处理的当前像素,选择一个模板,该模板为其邻近的若干个像素组成, 对模板的像素由小到大进行排序,再用模板的中值来替代原像素的值的方法。 权系数矩阵模板
g = median[(x-1,y-1) + f(x,y-1)+ f(x+1,y-1) + f(x-1,y) + f(x,y) + f(x+1,y) + f(x-1,y+1) + f(x,y+1) + f(x+1,y+1)] 优缺点 优点:抑制效果很好,画面的清析度基本保持; 缺点:对高斯噪声的抑制效果不是很好。
2017/7/3

% 根据输入的向量与中心值取近邻值 % vertex - 输入向量;center - 中心值;k - 近邻数 % neighbour - 近邻值 function neighbour = GetNeighbour(vertex, center, k) distance = abs(vertex - center); [sortDistance, sortIndex] = sort(distance,1); neighbour = vertex(sortIndex(2 : k + 1)); end % 将矩阵转换为向量 function vertex = Matrix2Vertex(matrix) [row, col] = size(matrix); vertex = zeros(row * col, 1); for i = 1 : row * col vertex(i) = matrix(i); end end
K近邻平滑(均值、中值)滤波器
KNN:K Nearest Neighbor
戴情
概述
噪声对图像处理的影响很大,它影响图像处理的输入、采集和处理等各个环节以及 输出结果。因此,在进行其它的图像处理前,需要对图像进行去噪处理。 从统计学的观点来看,凡是统计特征不随时间变化的噪声称为平稳噪声,而统计特 征随时间变化的噪声称为非平稳噪声。幅值基本相同,但是噪声出现的位置是随机 的,称为椒盐噪声;如果噪声的幅值是随机的,根据幅值大小的分布,有高斯型和 瑞利型两种,分别称为高斯噪声和瑞利噪声。 常见的去噪处理有均值滤波,中值滤波,灰度最小方差均值滤波,K近邻平滑滤波, 对称近邻均值滤波,西戈玛平滑滤波等。
相关主题