数字图像处理3:空域滤波(图像平滑:均值,中值。图像锐化)

空域滤波

空间滤波根据其功能划分为平滑滤波和锐化滤波。首先介绍平滑滤波。

平滑滤波

平滑算法有很多种,这里进行两种平滑滤波算法——均值滤波和中值滤波的比较,滤波器模板均为 3*3;在滤波器都需要延拓两行两列,使用镜像的延拓方式。下面是各自算法的描述。

实验思路

均值滤波首先取出计算的像素点 33 范围内的所有的点,之后利用其灰度值求均值,计算结果为滤波后的当前像素点的灰度值。
中值滤波首先取出计算的像素点 3
3 范围内的所有的点,之后进行按像素的灰度值的大小排序,取中位数作为当前像素点的值。

代码

主函数:

%%
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,:)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值