空域滤波
空间滤波根据其功能划分为平滑滤波和锐化滤波。首先介绍平滑滤波。
平滑滤波
平滑算法有很多种,这里进行两种平滑滤波算法——均值滤波和中值滤波的比较,滤波器模板均为 3*3;在滤波器都需要延拓两行两列,使用镜像的延拓方式。下面是各自算法的描述。
实验思路
均值滤波首先取出计算的像素点 33 范围内的所有的点,之后利用其灰度值求均值,计算结果为滤波后的当前像素点的灰度值。
中值滤波首先取出计算的像素点 33 范围内的所有的点,之后进行按像素的灰度值的大小排序,取中位数作为当前像素点的值。
代码
主函数:
%%
clc;
clear;
close all;
%% 读取图像
filename = 'circuit'; % 受到椒盐噪声污染的电路板X射线图像
im = imread([filename, '.jpg']);
%% 图像的滤波次数
times = 1000;
im_a = im;
im_m = im;
for i = 1:times
%% 将图像进行均值滤波
% im_a = myAverage(im_a);
%% 将图像进行中值滤波
im_m = myMedian(im_m);
end
%% 将结果保存到当前目录下的result文件夹下
imwrite(im_a, sprintf('result/_%s_a.jpg', filename));
imwrite(im_m, sprintf('result/_%s_m.jpg', filename));
%% 显示结果
figure(1);
subplot(131); imshow(im); title('原图'); axis on
subplot(132); imshow(im_a); title('5次均值滤波'); axis on
subplot(133); imshow(im_m); title('5次中值滤波'); axis on
功能函数:
function [img_2] = myAverage(img_1)
size_1 = size(img_1);
h = size_1(1);
w = size_1(2);
img_2 = zeros(h, w);
%%边缘延拓两行两列
a = img_1(1,:)

最低0.47元/天 解锁文章
1万+





