数字图像处理本科教学版(第三章)讲解

本文详细讲解了数字图像处理中的频率域滤波,包括相关库函数的使用和多个课本例题的演示,如低通、高通滤波器的应用,以及图像处理效果的展示。读者可以通过例题代码理解并实践图像的频率域处理。
摘要由CSDN通过智能技术生成

第三章 频率域滤波
首先,我将把我们需要用到库函数代码先公布出来,其次我将分别用书上的例题一一例举出来。
一、相关库函数
下面展示一些 内联代码片

tofloat函数
function [out, revertclass]=tofloat(in)
%tofloat convert image to floating point
 
identity=@(x) x;
tosingle=@im2single;
 
table={
   'uint8', tosingle, @im2uint8
    'uint16', tosingle, @im2uint16
    'int16', tosingle, @im2int16
    'logical', tosingle, @logical
    'double', identity, identity
    'single', identity, identity};
classIndex=find(strcmp(class(in),table(:,1)));
if isempty(classIndex)
error('Unsupported inut image class.')
end
 
out=table{
   classIndex,2}(in);
revertclass=table{
   classIndex,3};
下面展示一些 `内联代码片`
hpfilter函数
function H = hpfilter(type, M, N, D0, n)
% LPFILTER Computes frequency domain highpass filters
%   H = HPFILTER(TYPE, M, N, D0, n) creates the transfer function of a
%   highpass filter, H, of the specified TYPE and size (M-by-N). To view the
%   filter as an image or mesh plot, it should be centered using H =
%   fftshift(H)
%   Valid value for TYPE, D0, and n are:
%   'ideal' Ideal highpass filter with cutoff frequency D0. n need not be
%           supplied. D0 must be positive.
%   'btw'   Butterworth highpass filter of order n, and cutoff D0. The
%           default value for n is 1.0. D0 must be positive.
%   'gaussian'Gaussian highpass filter with cutoff (standard deviation) D0.
%           n need not be supplied. D0 must be positive.
% The transfer function Hhp of highpass filter is 1 - Hlp, where Hlp is the
% transfer function of the corresponding lowpass filter. Thus, we can use
% function lpfilter to generate highpass filters.
%
% 计算给定类型(理想、巴特沃兹、高斯)的频域高通滤波器

% Use function dftuv to set up the meshgrid arrays needed for computing the
% required distances.
if nargin == 4
    n = 1;
end
Hlp = lpfilter(type, M, N, D0, n);
H = 1 - Hlp;      
function H = hpfilter(type, M, N, D0, n)
% LPFILTER Computes frequency domain highpass filters
%   H = HPFILTER(TYPE, M, N, D0, n) creates the transfer function of a
%   highpass filter, H, of the specified TYPE and size (M-by-N). To view the
%   filter as an image or mesh plot, it should be centered using H =
%   fftshift(H)
%   Valid value for TYPE, D0, and n are:
%   'ideal' Ideal highpass filter with cutoff frequency D0. n need not be
%           supplied. D0 must be positive.
%   'btw'   Butterworth highpass filter of order n, and cutoff D0. The
%           default value for n is 1.0. D0 must be positive.
%   'gaussian'Gaussian highpass filter with cutoff (standard deviation) D0.
%           n need not be supplied. D0 must be positive.
% The transfer function Hhp of highpass filter is 1 - Hlp, where Hlp is the
% transfer function of the corresponding lowpass filter. Thus, we can use
% function lpfilter to generate highpass filters.
%
% 计算给定类型(理想、巴特沃兹、高斯)的频域高通滤波器

% Use function dftuv to set up the meshgrid arrays needed for computing the
% required distances.
if nargin == 4
    n = 1;
end
Hlp = lpfilter(type, M, N, D0, n);
H = 1 - Hlp;      

dftuv函数
function [U, V] = dftuv(M, N)
% DFTUV Computes meshgrid frequency matrices.
% [U, V] = DFTUV(M, N) computes meshgrid frequency matrices U and V. U and
% V are useful for computing frequency-domain filter functions that can be
% used with DFTFILT. U and V are both M-by-N.
% more details to see the textbook Page 93
%
% [UV] = DFTUVMN)计算网格频率矩阵UVUV对于计算可与DFTFILT一起使用的
% 频域滤波器函数很有用。 UV都是M-by-N。更多细节见冈萨雷斯教材93% Set up range of variables.
% 设置变量范围
u = 0 : (M - 1);
v = 0 : (N - 1);

% Compute the indices for use in meshgrid.
% 计算网格的索引,即将网络的原点转移到左上角,因为FFT计算时变换的原点在左上角。
idx = find(u > M / 2);
u(idx) = u(idx) - M;
idy = find(v - N / 2);
v(idy) = v
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值