资源简介

文件包含了数字图像处理这门课程中的中值滤波和均值滤波的基本实现代码

资源截图

代码片段和文件信息

function [output] = meansfilter(input radius)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% input: 噪声图像
% r: 图像块半径
%
% Auther: Gao Zheng jie
% Email: 3170601003@cuit.edu.cn
% Date: 2017-12-19
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[m n] = size(input);  % 获取图像的行列维度,并分别赋给m和n
Output = zeros(m n);  % 定义m*n的零矩阵,用来存放去噪结果图像
input_pad = padarray(input [radius radius] ‘symmetric‘);  %边界延拓,使得位于图像边缘的像素点也能形成图像块。
                                                  % symmetric 对边界区域进行对称性重复(也叫镜像镶边),拓展的大小为[r r]f为图像块半径
                                                  %例如[2 3]表示垂直方向拓展2行,水平方向拓展3列
weight = (2*radius+1)^2;  % 算术均值滤波中每一个像素点的权重
% 逐行、依次对图像中的每个像素点进行局部均值去噪处理
for i=1:m  % 行
    for j=1:n  % 列
        % 在延拓后的图像中确定将要修补点的坐标
        x = i + radius;
        y = j + radius;
        % 确定当前像素点的邻域(或者说当前点所在的图像块)
        neighbordhood = input_pad(x-radius:x+radius y-radius:y+radius);
        output(ij) = sum(sum(neighbordhood))/weight;
    end
end

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-12-19 16:31  matlab_code\
     文件       42447  1997-04-29 01:19  matlab_code\einstein.jpg
     文件        1156  2017-12-19 09:59  matlab_code\meansfilter.m
     文件        1124  2017-12-19 10:26  matlab_code\medfilter.m
     文件         822  2017-12-19 10:16  matlab_code\test_meansfilter.m
     文件         862  2017-12-19 10:21  matlab_code\test_medfilter.m

评论

共有 条评论