Matlab:干涉图低通、带通、高通滤波器

目录

读原图

均值滤波

中值滤波

低通滤波器(使用高斯核)

带通滤波器(使用两个高斯核的差)

高通滤波器( 使用拉普拉斯核)


原图1:

读原图

clear;clc;close all;
%% Origin image
% Read in the image and convert to grayscale
img = imread('1.bmp');
grayImg = rgb2gray(img);

figure(1);
imshow(uint8(grayImg));colorbar;

均值滤波

均值滤波是典型的线性滤波算法,它是指在图像上对目标像素给一个模板,该模板包括了其周围的临近像素(以目标像素为中心的周围3个像素,构成一个滤波模板,即包括目标像素本身),再用模板中的全体像素的平均值来代替原来像素值

均值滤波也称为线性滤波,其采用的主要方法为邻域平均法。线性滤波的基本原理是用均值代替原图像中的各个像素值,即对待处理的当前像素点(x,y),选择一个模板,该模板由其近邻的若干像素组成,求模板中所有像素的均值,再把该均值赋予当前像素点(x,y),作为处理后图像在该点上的灰度g(x,y),即g(x,y)=∑f(x,y)/m m为该模板中包含当前像素在内的像素总个数。

%% Average filter:
% Define the averaging kernel with a size of 3x3 
avgKernel = ones(3)/9; 
% Apply the filter using the conv2 function
filteredImg = conv2(double(grayImg), avgKernel, 'same');
% Display the filtered image
figure(3);
imshow(uint8(filteredImg));colorbar;

中值滤波

中值滤波法是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值。

中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近真实值,从而消除孤立的噪声点。方法是用某种结构的二维滑动模板,将板内像素按照像素值的大小进行排序,生成单调上升(或下降)的为二维数据序列。二维中值滤波输出为g(x,y)=med{f(x-k,y-l),(k,l∈W)} ,其中,f(x,y),g(x,y)分别为原始图像和处理后图像。W为二维模板,通常为3*3,5*5区域,也可以是不同的形状,如线状,圆形,十字形,圆环形等。

%% Median filter with 3x3 window
% Apply the median filter using the medfilt2 function with a 3x3 window
filteredImg = medfilt2(grayImg, [3, 3]);
% Display the filtered image
figure(4);
imshow(uint8(filteredImg));colorbar;

低通滤波器(使用高斯核)

低通滤波(Low-pass filter) 是一种过滤方式,规则为低频信号能正常通过,而超过设定临界值高频信号则被阻隔、减弱。但是阻隔、减弱的幅度则会依据不同的频率以及不同的滤波程序(目的)而改变。它有的时候也被叫做高频去除过滤(high-cut filter)或者最高去除过滤(treble-cut filter)。低通过滤是高通过滤的对立。

低通滤波可以简单的认为:设定一个频率点,当信号频率高于这个频率时不能通过,在数字信号中,这个频率点也就是截止频率,当频域高于这个截止频率时,则全部赋值为0。因为在这一处理过程中,让低频信号全部通过,所以称为低通滤波。

低通过滤的概念存在于各种不同的领域,诸如电子电路数据平滑,声学阻挡,图像模糊等领域经常会用到。

数字图像处理领域,从频域看,低通滤波可以对图像进行平滑去噪处理。

% Define the Gaussian kernel with a size of 5x5 and sigma of 2
gaussKernel = fspecial('gaussian', [5 5], 2); 
% Apply the filter using the conv2 function
filteredImg = conv2(double(grayImg), gaussKernel, 'same');
% Display the filtered image
figure(2);
imshow(uint8(filteredImg));colorbar;

带通滤波器(使用两个高斯核的差)

滤去高频、保留中频信号的滤波方法。

% Define the two Gaussian kernels with different sizes and sigmas
kernel1 = fspecial('gaussian', [5, 5], 2);
kernel2 = fspecial('gaussian', [5, 5], 0.5);
% Subtract the two kernels to get the band-pass filter
bandPassKernel = kernel1 - kernel2;
% Apply the filter using the conv2 function
filteredImg = conv2(double(grayImg), bandPassKernel, 'same');
% Display the filtered image
% Display the filtered image
figure(5);
imshow(uint8(filteredImg));colorbar;

高通滤波器( 使用拉普拉斯核)

高通滤波(high-pass filter) 是一种过滤方式,规则为高频信号能正常通过,而低于设定临界值的低频信号则被阻隔、减弱。但是阻隔、减弱的幅度则会依据不同的频率以及不同的滤波程序(目的)而改变。它有的时候也被叫做低频去除过滤(low-cut filter)。高通滤波是低通滤波的对立。

高通滤波属于频率域滤波,它保留高频,抑制低频,是图像锐化的一种方式。

% Define the Laplacian kernel (center pixel is negative, surrounding pixels are positive)
laplacianKernel = [0, 1, 0; 1, -4, 1; 0, 1, 0]; 
% Apply the filter using the conv2 function
filteredImg = conv2(double(grayImg), laplacianKernel, 'same');
% Display the filtered image
figure(6);
imshow(uint8(filteredImg));colorbar;

免费下载链接:Matlab:干涉图滤波方法大全-C文档类资源-CSDN文库

(本文为CSDN“光学码农”原创,转载须注明本文网址,违者必究!)

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

光学码农

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值