MATLAB实现中值滤波算法
2017-04-11 18:33
155 查看
x = imread('C:\Users\Administrator\Desktop\im7.jpg');
x = rgb2gray(x);
[m, n] = size(x); %m表示行数(即高度);n表示列数(即宽度)
x = imnoise(x,'salt & pepper',0.02);
subplot(1,2,1)
imshow(x);
title('原图');
x1 = double(x);
x2 = x1;
%% --------------------------------%
% 此处的算法缺点是未对边界值做出改变
for i = 1:m-3+1
for j = 1:n-3+1
mb = x1( i:(i+3-1), j:(j+3-1) ); %取出模板元素
mb = mb(:); %矩阵中的元素以一列输出
mm = median(mb);%取向量的中值
x2( i+(3-1)/2, j+(3-1)/2 ) = mm; %对中心元素赋值
end
end
%% --------------------------------%
dstImage = uint8(x2);
subplot(1,2,2)
imshow(dstImage);
title('效果图');
x = rgb2gray(x);
[m, n] = size(x); %m表示行数(即高度);n表示列数(即宽度)
x = imnoise(x,'salt & pepper',0.02);
subplot(1,2,1)
imshow(x);
title('原图');
x1 = double(x);
x2 = x1;
%% --------------------------------%
% 此处的算法缺点是未对边界值做出改变
for i = 1:m-3+1
for j = 1:n-3+1
mb = x1( i:(i+3-1), j:(j+3-1) ); %取出模板元素
mb = mb(:); %矩阵中的元素以一列输出
mm = median(mb);%取向量的中值
x2( i+(3-1)/2, j+(3-1)/2 ) = mm; %对中心元素赋值
end
end
%% --------------------------------%
dstImage = uint8(x2);
subplot(1,2,2)
imshow(dstImage);
title('效果图');
相关文章推荐
- 基于MATLAB的中值滤波算法实现
- 用Matlab实现随机区间的划分
- 基于VC实现Java和Matlab的通信
- 线性方程数值解中jacobi迭代matlab实现
- 多级树集合分裂(SPIHT)算法的过程详解与Matlab实现(7)解码过程——扫描解码
- 图像放缩 (matlab实现,不用自带的函数)
- 多级树集合分裂(SPIHT)算法的过程详解与Matlab实现(8)实例演示
- 线性方程数值分析中高斯迭代matlab实现
- 多级树集合分裂(SPIHT)算法的过程详解和Matlab实现(4)编码过程——排序扫描
- 多级树集合分裂(SPIHT)算法的过程详解与Matlab实现(6)解码过程——主程序
- VC与Matlab混合编程的快速实现(3-1)
- 最优化方法的Matlab实现
- 声卡虚拟示波器简单功能-使用matlab DAQ工具箱中API实现
- 如何实现C#与matlab交互
- matlab与c#接口的实现
- C语言实现MATLAB 6.5中M文件的方法
- 支持Python系列:Matlab的Python实现Scipy和Matplotlib简介
- 利用Matlab引擎实现VC和Matlab的混合编程
- 多级树集合分裂(SPIHT)算法的过程详解与Matlab实现(1)算法概述
- 在MATLAB中实现高斯分布和均匀分布