资源简介
MATLAB的.m文件,开关型矢量中值滤波器的实现,需要在标准CIELAB空间下使用,具体的开关型矢量中值滤波器的原理可以参考论文
代码片段和文件信息
%开关型矢量中值滤波器仿真实现,im1为待滤波的图像,w为滤波窗口大小
function imvmf_out=OOVMF(imwTcd)
%im=im2double(im1);
imvmf_out = ones(size(im));
ws = (w-1)/2;
window = w^2;
temp_sumDiff=0;
countflag=0;
%M是一个四维5*5的矩阵,记录4个用于检测冲击噪声的方向模板
M=zeros(554);
M(3:1)=1;
M(:33)=1;
M(::2)=[0 0 0 0 1; 0 0 0 1 0; 0 0 1 0 0; 0 1 0 0 0; 1 0 0 0 0];
M(::4)=[1 0 0 0 0; 0 1 0 0 0; 0 0 1 0 0; 0 0 0 1 0; 0 0 0 0 1];
OneOfM=zeros(553);
flagOnOff=0; %flag用于判断当前像素是否是噪声点
% 边缘扩展
im_pad = padarray(im[ws ws]‘replicate‘);
dim= size(im_pad);
row = dim(1);
col = dim(2);
dis = ones(1window);
im_sub = ones(window);
MeanDiffC = ones(14);
for i=3:(col-2*ws)
for j=3:(row-2*ws)
%OnOff switch
im_sub3=imcrop(im_pad[i-2j-244]);
for temp_i=1:4
OneOfM(::1)=M(::temp_i);
OneOfM(::2)=M(::temp_i);
OneOfM(::3)=M(::temp_i);
im_sub4=reshape( (OneOfM .* im_sub3) []3);
temp_sumDiff=0; temp_diff=0;
for temp_j=1:25
temp_dva1=double(im_sub4(temp_j:));
temp_dva2=double(im_sub4(13:));
temp_diff=norm(temp_dva1-temp_dva2);
temp_sumDiff = temp_sumDiff + temp_diff;
end
- 上一篇:用Verilog实现整数转浮点数
- 下一篇:MATLAB实现图片柱面投影
相关资源
- MATLAB实现图片柱面投影
- 拟合圆matlab代码
- 灰色预测的matlab代码
- 基于MATLAB的滤波器设计
- 梯度下降法matlab程序,需要手动输入
- 基于遗传算法的BP神经网络优化算法—
- 基于matlab的遍历文件夹中的所有子文
- 卡尔曼滤波的MATLAB实现
- 基于MATLAB的数字语音识别
-
BCH编码与解码的simuli
nk仿真 - 基于多频外差原理的仿真,matlab程序
- 线性规划.非线性规划.多目标规划Ma
- 模拟退火法Matlab代码[比赛已经用过保
- matlab特征点提取
- matlab简易画板GUI程序
- 稀疏表示内含完整的MATLAB代码
- 视频分帧matlab
- MATLAB前方交会函数程序
- DFIG风电模型
- license_standalone.lic
- MATLAB自带去视频抖动程序
- 新安江模型Matlab代码
- 二元序列的Berlekamp-Massey算法的matlab程
- 基于MATLAB的LDPC编译码仿真程序
- 基于均值漂移mean shift算法的图像分割
- 基于水平集CV模型的图像分割Matlab代码
- 小波变换图像增强
- 298496基于Matlab的m序列发生器的设计与
- 基于matlab的Boost变换器的有源功率因数
- 昆明理工大学纠错编码原理及MATLAB实
评论
共有 条评论