• 一般我们见到的简单的图像处理都是空间域的处理。即图像是一个二维图像,每个点都有对应的坐标。 图像的频域理解起来并不是那么简单,因此我在这里说一下个人理解,希望帮助到需要帮助的人。本篇博文使用Halcon软件...

    一般我们见到的简单的图像处理都是空间域的处理。即图像是一个二维图像,每个点都有对应的坐标。
    图像的频域理解起来并不是那么简单,因此我在这里说一下个人理解,希望帮助到需要帮助的人。本篇博文使用Halcon软件的示例以及图像进行展示。

    首先需要说明的几点知识:
    1.如果需要看频谱图是要进行傅里叶变换的,图像的傅里叶变换其实是将图像的灰度分布函数变换为图像的频率分布函数。
    2.图像的频域中的高频分量对应图像的细节信息,图像低频分量对应图像的轮廓信息。高频分量代表的是信号的突变部分(即灰度值梯度大),而低频分量决定信号的整体形象(即梯度小)。
    3.在频谱图中,可以看到亮度不同的点,这些点中亮度大就证明该点的梯度大(即高频分量),亮度小证明该点的梯度小(即低频分量)。
    4.频谱图中中心部分代表高频分量,四周代表低频分量,尤其是四个顶点。

    然后根据图像进行简单解释。
    原图
    原图

    然后进行傅里叶变换

    rft_generic (Image, ImageFFT, 'to_freq', 'none', 'complex', Width)
    

    在这里插入图片描述
    傅里叶变换之后的频谱图

    原图特征一致,图像梯度很小,则低频分量较多,高频分量较少。体现在频谱图中就是顶点部分更亮。而肉眼可以明显的看到图像中有一部分凸起,这部分的梯度就变大了,在频谱图中该部分就偏亮些。

    然后可以对图像进行滤波

    convol_fft (ImageFFT, Filter, ImageConvol)
    rft_generic (ImageConvol, ImageFiltered, 'from_freq', 'n', 'real', Width)
    

    在这里插入图片描述
    滤波之后的图像

    这样就可以将中间部分的凸起检测出来了。
    在这里插入图片描述
    在这里插入图片描述
    有的图像在空间域中进行处理会很困难,例如该例中的检测缺陷。但是放到频域中就可以很简单的进行检测,比如我们看到的经过滤波之后的图像,待检测点部分的特征明显去其他地方不同。

    作者:GL3_24
    来源:CSDN
    著作权归作者所有。转载请联系作者获得授权并注明出处。

    展开全文
  • 图像从空间域通过傅里叶变换等变换转换到频域,目的在于更好处理且计算速度快。 1.频域处理基础 通过狄里赫莱条件(有限个间断点、有限个极值点、绝对可积)定义傅里叶变换。 通过了解FT的性质对图像进行处理...

    将图像从空间域通过傅里叶变换等变换转换到频域,目的在于更好处理且计算速度快。

    1.频域处理基础

    通过狄里赫莱条件(有限个间断点、有限个极值点、绝对可积)定义傅里叶变换。 

    通过了解FT的性质对图像进行处理。

     上机实现:

    m=imread('D:\Imagematlab\1.jpg');
    t=rgb2gray(m);
    figure;
    imshow(t);
    R=fftshift(fft2(t));%fft
    figure;
    imshow(log(abs(R)),[]);
    figure;
    r2=dct2(t);
    imshow(log(abs(r2)),[]);%dct

    2.空域点处理

     

     伪彩色处理 or 假彩色处理:

    伪彩色处理--灰度图像变为彩色图像,对比度增强、图像恢复。

    假彩色处理--映射成奇异彩色引人注目;利用人眼对彩色的敏感度提高鉴别能力;遥感图像处理获得更多信息。

    I=imread('cat.jpg');
    I=rgb2gray(I);
    % I=im2double(I);
    % a=2;b=-55;
    % R=a.*I+b/255;%线性运算
    % figure(1);
    % imshow(R);
    % R=2.5*log(I+1);%非线性运算
    % figure(2);
    % imshow(R);
    % R=1.0*I.^4.5;%幂运算
    % figure(3);
    % imshow(R);
    
    % imhist(I);
    % R=histeq(I);
    % figure;
    % imshow(R);
    % title('均衡化');
    
    % J=imnoise(I,'salt & pepper',0.02);
    % subplot(2,3,1);imshow(I);title('原图像');
    % subplot(2,3,2);imshow(J);title('添加椒盐噪声');
    % R1=filter2(fspecial('average',3),J);%3*3模板均值滤波
    % R2=filter2(fspecial('average',5),J);
    % R3=filter2(fspecial('average',7),J);
    % R4=filter2(fspecial('average',9),J);
    % subplot(2,3,3);imshow(uint8(R1)),title('3*3模板均值滤波');
    % subplot(2,3,4);imshow(uint8(R2)),title('5*5模板均值滤波');
    % subplot(2,3,5);imshow(uint8(R3)),title('7*7模板均值滤波');
    % subplot(2,3,6);imshow(uint8(R4)),title('9*9模板均值滤波');
    % 
    % figure(2);
    % subplot(2,3,1);imshow(I);title('原图像');
    % subplot(2,3,2);imshow(J);title('添加椒盐噪声');
    % R1=medfilt2(J);
    % R2=medfilt2(J,[5 5]);
    % R3=medfilt2(J,[7 7]);
    % R4=medfilt2(J,[9 9]);
    % subplot(2,3,3);imshow(R1),title('3*3');%中值模板
    % subplot(2,3,4);imshow(R2),title('5*5');
    % subplot(2,3,5);imshow(R3),title('7*7');
    % subplot(2,3,6);imshow(R4),title('9*9');
    
    % figure;
    % subplot(1,3,1);imshow(I);
    % H=fspecial('Sobel');
    % H=H';%Sobel垂直模板
    % R=filter2(H,I);
    % subplot(1,3,2);imshow(R,[]);
    % H=H';%Sobel水平模板
    % R=filter2(H,I);
    % subplot(1,3,3);imshow(R,[]);
    % 
    % figure(2);
    % subplot(2,3,1);imshow(I);
    % [R,t]=edge(I,'log');
    % subplot(2,3,2);imshow(R);title('LOG算子检测边缘');
    % R=edge(I,'Sobel');
    % subplot(2,3,3);imshow(R);title('Sobel算子检测边缘');
    % R=edge(I,'Prewitt');
    % subplot(2,3,4);imshow(R);title('Prewitt');
    % R=edge(I,'Roberts');
    % subplot(2,3,5);imshow(R);title('Roberts');
    
    

     

     

    展开全文
  • 数字图像处理频域处理课件,欢迎下载。
  • 经过频域变换后的图像称为频域图像。离散情况下,一维傅里叶变换有如下形式。同时这里还证明了,对原始数据乘以(-1)^x之后,频域结果被中心化。 在二维情况下,则有 因为图像处理中一般有M=N,所以有   我们对...

    一般我们看到的图像可以表示为函数f(x,y),x和y是空间上的坐标,此时的图像称为空间域图像;经过频域变换后的图像称为频域图像。离散情况下,一维傅里叶变换有如下形式。同时这里还证明了,对原始数据乘以(-1)^x之后,频域结果被中心化。


    在二维情况下,则有

    因为图像处理中一般有M=N,所以有

     

    我们对一幅图像每个像素点(x,y)乘以(-1)^(x+y),然后进行FFT,得到中心化的频域图像,然后对频域图像进行操作,最后进行傅里叶逆变换,得到处理图像。

     

    在频域上可以方便地进行低通滤波和高通滤波,或者叫模糊化滤波和锐化滤波。设当前的频域图像已经中心化,如果频域图像像素离中心越远,乘以一个小的权值,那么变换回空间域图像,就会发现图像模糊了;反之图像变锐化。常用如下几种滤波器:

    1、理想低/高通滤波。如果频域图像像素点离中心超过/小于一定距离D0,那么赋值为0。理想滤波之后产生的空间域图像会伴随着波纹,称为振铃,原因是理想滤波器曲线是阶跃曲线,用傅里叶级数去拟合会产生吉布斯效应引起的震荡。、

    2、巴特沃斯滤波器。其公式中n为阶数,控制坡度大小。N=1时有振铃效应,n增大后振铃逐渐减弱。

    3、高斯滤波器。效果比较完美。

     

    低通滤波器LPF,其中D0是截止频率,D(u,v)是离中心的距离


    高通滤波器HPF = 1 -LPF

    带阻滤波器HBR,w是带宽,D0是截止频率,D就是D(u,v)

    带通滤波器HBP = 1- HBR

    表格略。

    陷波器,带阻滤波器中心不在原点的,带有偏移的带阻滤波器。

    https://github.com/artzers/NGImageProcessor.git BaseFFTProcessor.py

    展开全文
  • 数字图像处理方法的重要性源于两个主要的应用领域:改善图示信息以便人们解释;为存储、传输和表示而对图像数据进行处理,以便于机器自动理解。 一幅数字图像可定义为一个二维函数f(x,y),其中x和y是空间(平面)...


    数字图像处理方法的重要性源于两个主要的应用领域:改善图示信息以便人们解释;为存储、传输和表示而对图像数据进行处理,以便于机器自动理解。

    一幅数字图像可定义为一个二维函数f(x,y),其中x和y是空间(平面)坐标,而在任何一对空间坐标(x,y)出的幅值f称为图像在该点处的灰度或强度。

    当x,y和灰度值f是有限的离散值时,我们称该图像为数字图像。数字图像处理是指借助于数字计算机来处理数字图像。注意,数字图像是由有限数量的元素组成的,每个元素都有一个特定的位置和幅值,这些元素称为图画元素、图像元素或像素,像素是广泛用于表示数字图像的术语。

    数字图像处理的应用领域多种多样。数字图像处理应用范围的一种罪简单的方法是根据信息源来分类。在现在的应用中,最主要的图像能源是电磁能谱,其他主要图像 能源包括声波、超声波和电子(以用于电子显微镜中的电子束形式)。用于建模和可视化的合成图像由计算机产生。

    以电磁波谱辐射为基础的图像有一下几种:

    伽马射线成像

    X射线成像

    紫外波段成像

    可见光及红外波段成像

    微波波段成像

    图像处理分为空间域和频域

    空间域处理方法主要是灰度变换和空间滤波

    频域处理方法主要是频率域滤波

    图像的频率是表征图像中灰度变化剧烈程度的指标,是灰度在平面空间上的梯度。如:大面积的沙漠在图像中是一片灰度变化缓慢的区域,对应的频率值很低;而对于地表属性变换剧烈的边缘区域在图像中是一片灰度变化剧烈的区域,对应的频率值较高。
           对图像而言,图像的边缘部分是突变部分,变化较快,因此反应在频域上是高频分量;图像的噪声大部分情况下是高频部分;图像平缓变化部分则为低频分量。
           也就是说,傅立叶变换提供另外一个角度来观察图像,可以将图像从灰度分布转化到频率分布上来观察图像的特征。
            不同频率信息在图像结构中有不同的作用。图像的主要成分是低频信息,它形成了图像的基本灰度等级,对图像结构的决定作用较小;中频信息决定了图像的基本结构,形成了图像的主要边缘结构;高频信息形成了图像的边缘和细节,是在中频信息上对图像内容的进一步强化。
         图像进行二维傅立叶变换得到频谱图,就是图像梯度的分布图,当然频谱图上的各点与图像上各点并不存在一一对应的关系,即使在不移频的情况下也是没有。
            傅立叶频谱图上我们看到的明暗不一的亮点,实际是上图像上某一点与邻域点差异的强弱,即梯度的大小,也即该点的频率的大小(可以这么理解,图像中的低频部分指低梯度的点,高频部分相反)。


     版权所有权归卿萃科技,转载请注明出处  

    作者:卿萃科技ALIFPGA  

    原文地址:卿萃科技FPGA极客空间 微信公众号

     


      

    扫描二维码关注卿萃科技FPGA极客空间

     


     

    展开全文
  • 数字图像作业 matlab中在频域图像处理 包括了傅里叶变换 图像的相加减 滤波等
  • 5.14 图像频域处理

    2015-02-10 20:07:25
    图像处理和分析中,经常会将图像从图像空间转换到其他空间中,并利用这些空间的特点进行对转换后图像进行分析处理,然后再将处理后的图像转换到图像空间中,这称之为图像变换。在一些图像处理和分析中通过空间变换...

    5.14 图像频域处理

    在图像处理和分析中,经常会将图像从图像空间转换到其他空间中,并利用这些空间的特点进行对转换后图像进行分析处理,然后再将处理后的图像转换到图像空间中,这称之为图像变换。在一些图像处理和分析中通过空间变换往往会取得更有效的结果。图像频域处理是指将图像从图像空间转换到频域空间进行处理的过程。最常用的频域转换是傅里叶变换。对于傅里叶变换的理论内容不是这里讨论的重点,读者可以从网上找到大量的资料。傅里叶变换的计算量较大,人们为了提高速度,提出了快速傅里叶变换,并得到了广泛的应用。下面我们首先来学习一下VTK中的快速傅里叶变换。

    5.14.1 快速傅里叶变换

    快速傅里叶变换(Fast Fourier Transform),简称做FFT。它是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。傅里叶变换是可逆的,其逆变换为RFFT。FFT在数字图像处理中有着广泛的应用,例如数字图像频域滤波,去噪,增强等等。 目前VTK中两变换都已经实现,对应的类分别为vtkImageFFT和vtkImageRFFT。下面代码演示了怎样对图像进行傅里叶变换,以及将傅里叶变换结果进行逆变换。

    vtkImageFFT和vtkImageRFFT的输入为实数或者复数数据,输出都为复数数据。因此,vtkImageFFT与vtkImageRFFT的输出结果不能直接显示,因为VTK会将其当做彩色图像显示,需要通过vtkImageExtractComponents提取某一组分图像显示。

    VTK频率域的图像处理步骤如下:

     

    图5.35VTK频率域的图像处理步骤

    下面代码说明了怎样对一副图像进行快速傅里叶变换和逆变换。

     

    1:      vtkSmartPointer<vtkJPEGReader>reader =

       2:         vtkSmartPointer<vtkJPEGReader>::New();

       3:     reader->SetFileName ( " lena2.jpg" );

       4:     reader->Update();

       5:  

       6:     vtkSmartPointer<vtkImageFFT> fftFilter =

       7:         vtkSmartPointer<vtkImageFFT>::New();

       8:     fftFilter->SetInputConnection(reader->GetOutputPort());

       9:     fftFilter->Update();

      10:  

      11:     vtkSmartPointer<vtkImageExtractComponents> fftExtractReal =

      12:         vtkSmartPointer<vtkImageExtractComponents>::New();

      13:     fftExtractReal->SetInputConnection(fftFilter->GetOutputPort());

      14:     fftExtractReal->SetComponents(0);

      15:  

      16:     vtkSmartPointer<vtkImageCast> fftCastFilter =

      17:         vtkSmartPointer<vtkImageCast>::New();

      18:     fftCastFilter->SetInputConnection(fftExtractReal->GetOutputPort());

      19:     fftCastFilter->SetOutputScalarTypeToUnsignedChar();

      20:     fftCastFilter->Update();

      21:  

      22:     vtkSmartPointer<vtkImageRFFT> rfftFilter =

      23:         vtkSmartPointer<vtkImageRFFT>::New();

      24:     rfftFilter->SetInputConnection(fftFilter->GetOutputPort());

      25:     rfftFilter->Update();

      26:  

      27:     vtkSmartPointer<vtkImageExtractComponents> ifftExtractReal =

      28:         vtkSmartPointer<vtkImageExtractComponents>::New();

      29:     ifftExtractReal->SetInputConnection(rfftFilter->GetOutputPort());

      30:     ifftExtractReal->SetComponents(0);

      31:  

      32:     vtkSmartPointer<vtkImageCast> rfftCastFilter =

      33:         vtkSmartPointer<vtkImageCast>::New();

      34:     rfftCastFilter->SetInputConnection(ifftExtractReal->GetOutputPort());

      35:     rfftCastFilter->SetOutputScalarTypeToUnsignedChar();

      36:     rfftCastFilter->Update();

     

    首先建立一个JPEG图像reader来读取一副灰度图像。然后定义一个vtkImageFFT指针,直接接收reader的输出即原图像数据作为输入进行二维快速傅里叶变换。其输出为一个像素类型为复数的vtkImageData数据,即每个像素值为两个组分(Component):复数实部和虚部。因此如果直接显示这个vtkImageData,会发现是一个彩色图像。如果需要显示频域图像,需要通过vtkImageExtractComponents类来提取某一个组分图像来显示。上例中通过定义vtkImageExtractComponents类指针,利用函数SetComponents(0)指定提取实部图像显示;由于vtkImageActor类仅支持unsigned char数据类型的图像,利用vtkImageCast类的SetOutputScalarTypeToUnsignedChar()指定输出类型为unsigned char,将FFT结果图像转换为需要的类型。

    对于逆变换的过程也是类似。首先定义vtkImageRFFT指针,并接收输入为vtkImageFFT指针的输出,调用Update执行函数完成快速傅里叶逆变换。vtkImageRFFT的输出同样为一副复数图像,通常不能直接显示或者进行其他操作。对于傅里叶逆变换的图像中虚数部分值为0,实数部分图像即为重建的原始图像。因此再次利用vtkImageExtractComponents提取实数部分图像,并通过vtkImageCast的SetOutputScalarTypeToUnsignedChar()将图像转换为unsigned char类型进行显示。下图为计算结果。

     

    图5.36 快速傅立叶变换

    图像通过FFT变换到频域后,可以通过改变不同的频率分量来对图像进行处理。图像频域处理的步骤是,先将空域图像通过FFT变换到频域图像,设计一个滤波器对不同频率的频域分量进行处理,将处理后的频域图像通过IFFT变换回空域中得到处理后的图像。滤波器的设计需要根据具体需求来变化,主要分为两种,低通滤波器和高通滤波器。下面我们来分别介绍。

    5.14.2 低通滤波

    5.14.2.1 理想低通滤波器

    低通滤波是将频域图像中的高频部分滤除而通过低频部分。图像的边缘和噪声对应于频域图像中的高频部分,而低通滤波的作用即是减弱这部分的能量,从而达到图像平滑去噪的目的。最简单的低通滤波器是理想低通滤波器,基本思想是给定一个频率阈值,将高于该阈值的所有部分设置为0,而低于该频率的部分保持不变。理想是指该滤波器不能用电子元器件来实现,但是可以通过计算机来模拟。在VTK中定义了理想低通滤波器,下面我们来看下怎么使用该滤波器来对图像进行低通滤波。

     

    1:      vtkSmartPointer<vtkJPEGReader>reader =

       2:         vtkSmartPointer<vtkJPEGReader>::New();

      3:     reader->SetFileName("lena2.jpg");

       4:     reader->Update();

       5:  

       6:     vtkSmartPointer<vtkImageFFT> fftFilter =

       7:         vtkSmartPointer<vtkImageFFT>::New();

       8:     fftFilter->SetInputConnection(reader->GetOutputPort());

       9:     fftFilter->Update();

      10:  

      11:     vtkSmartPointer<vtkImageIdealLowPass> lowPassFilter =

      12:         vtkSmartPointer<vtkImageIdealLowPass>::New();

      13:     lowPassFilter->SetInputConnection(fftFilter->GetOutputPort());

      14:     lowPassFilter->SetXCutOff(0.05);

      15:     lowPassFilter->SetYCutOff(0.05);

      16:     lowPassFilter->Update();

      17:  

      18:     vtkSmartPointer<vtkImageRFFT> rfftFilter =

      19:         vtkSmartPointer<vtkImageRFFT>::New();

      20:     rfftFilter->SetInputConnection(lowPassFilter->GetOutputPort());

      21:     rfftFilter->Update();

      22:  

      23:     vtkSmartPointer<vtkImageExtractComponents> ifftExtractReal =

      24:         vtkSmartPointer<vtkImageExtractComponents>::New();

      25:     ifftExtractReal->SetInputConnection(rfftFilter->GetOutputPort());

      26:     ifftExtractReal->SetComponents(0);

      27:  

      28:     vtkSmartPointer<vtkImageCast> castFilter =

      29:         vtkSmartPointer<vtkImageCast>::New();

      30:     castFilter->SetInputConnection(ifftExtractReal->GetOutputPort());

      31:     castFilter->SetOutputScalarTypeToUnsignedChar();

      32:     castFilter->Update();

     

    首先读入一副jpg图像,通过vtkImageFFT将图像转换到频域空间。vtkImageIdealLowPass对频域图像做理想低通滤波,需要用户设置每个方向的截断频率,相应的设置函数SetXCutOff()和SetYCutOff()。执行完毕后,需要通过vtkImageRFFT将处理后的频域图像转换至空域图像。需要注意的是,转换后的图像每个像素都是一个复数,需要vtkImageExtractComponents将该图像的第一个分量提出出来显示,否则图像不能正确显示。由于傅里叶变换输入输出的数据类型都是double,为了方便显示,还需要将其转换为Unsigned char类型,这里vtkImageCast负责类型转换。下面是对图像做低通滤波的效果。从结果看,在过滤掉图像的高频部分后,图像变得模糊,丢失了许多细节,另外还可以看到图像会存在一定的振铃效应,这也是理想低通滤波的特点。

     

    图5.37 理想低通滤波器

     

    5.14.2.2 巴特沃斯低通滤波器

    在实际中经常使用的低通滤波器是巴特沃斯滤波器。巴特沃斯滤波器对应的转移函数(可以看做是一个系数矩阵)是:

     

    其中D(u,v)表示频域点(u,v)到频域图像原点的距离,称为截止频率,当D(u,v) = 时,H(u,v)=0.5,即对应的频域能量将为原来的一半。因为巴特沃斯低通滤波器在高低频间的过渡平滑,因此不会出现明显的振铃效应。VTK中实现巴特沃斯低通滤波器的类是vtkImageButterworthLowPass,其使用过程如下。

     

       1:     vtkSmartPointer<vtkImageButterworthLowPass> lowPassFilter =

       2:         vtkSmartPointer<vtkImageButterworthLowPass>::New();

       3:     lowPassFilter->SetInputConnection(fftFilter->GetOutputPort());

       4:     lowPassFilter->SetXCutOff(0.05);

       5:     lowPassFilter->SetYCutOff(0.05);

       6:     lowPassFilter->Update();

     

    vtkImageButterworthLowPass与理想低通滤波器的使用一样,因此这里只复制了部分代码。为了便于比较,这里设置X和Y方向的截止频率时,与理想低通滤波器设置一致,下面是相应的执行结果。从结果来看,巴特沃斯低通滤波器产生的图像更为平滑,不会出现振铃现象。

     

    图5.38 巴特沃斯滤波器

    5.14.3 高通滤波

    5.14.3.1 理想高通滤波器

    高通滤波与低通滤波正好相反,是频域图像的高频部分通过而抑制低频部分。在图像中图像的边缘对应高频分量,因此高通滤波的效果是图像锐化。同样最简单的高通滤波器是理想高通滤波器。通过设置一个频率阈值,将高于该阈值的频率部分通过,而低于阈值的低频部分设置为0。下面来看一下VTK中理想高通滤波的实例。

    1:      vtkSmartPointer<vtkJPEGReader>reader =

       2:         vtkSmartPointer<vtkJPEGReader>::New();

       3:     reader->SetFileName("lena2.jpg");

       4:     reader->Update();

       5:  

       6:     vtkSmartPointer<vtkImageFFT> fftFilter =

       7:         vtkSmartPointer<vtkImageFFT>::New();

       8:     fftFilter->SetInputConnection(reader->GetOutputPort());

      9:      fftFilter->Update();

      10:  

      11:     vtkSmartPointer<vtkImageIdealHighPass> highPassFilter =

      12:         vtkSmartPointer<vtkImageIdealHighPass>::New();

      13:     highPassFilter->SetInputConnection(fftFilter->GetOutputPort());

      14:     highPassFilter->SetXCutOff(0.1);

      15:     highPassFilter->SetYCutOff(0.1);

      16:     highPassFilter->Update();

      17:  

      18:     vtkSmartPointer<vtkImageRFFT> rfftFilter =

      19:         vtkSmartPointer<vtkImageRFFT>::New();

      20:     rfftFilter->SetInputConnection(highPassFilter->GetOutputPort());

      21:     rfftFilter->Update();

      22:  

      23:     vtkSmartPointer<vtkImageExtractComponents> ifftExtractReal =

      24:         vtkSmartPointer<vtkImageExtractComponents>::New();

      25:     ifftExtractReal->SetInputConnection(rfftFilter->GetOutputPort());

      26:     ifftExtractReal->SetComponents(0);

      27:  

      28:     vtkSmartPointer<vtkImageCast> castFilter =

      29:         vtkSmartPointer<vtkImageCast>::New();

      30:     castFilter->SetInputConnection(ifftExtractReal->GetOutputPort());

      31:     castFilter->SetOutputScalarTypeToUnsignedChar();

      32:     castFilter->Update();

     

    同低通滤波一样,首先将读入图像通过vtkImageFFT转换到频域空间,定义vtkImageIdealHighPass对象,并通过SetXCutOff ()和SetYCutOff() 设置X和Y方向的截止频率。然后通过vtkImageRFFT将处理后的图像转换到空域中,得到高通滤波图像。为了显示的需要,还需要提取图像分量和数据类型的转换,这里与低通滤波一致,不再赘述。下面是理想高通滤波的执行结果。从结果看出高通滤波后图像得到锐化处理,图像中仅剩下边缘。

     

    图5.39 理想高通滤波器

    5.14.3.2 巴特沃斯高通滤波器

    理想高通滤波器不能通过电子元器件来实现,而且存在振铃现象。在实际中最常使用的高通滤波器是巴特沃斯高通滤波器。该滤波器的转移函数是:

     

    D(u,v)表示频域中点到频域平面的距离,是截止频率。当D(u,v)大于时,对应的H(u,v)逐渐接近1,从而使得高频部分得以通过;而当D(u,v)小于时,H(u,v)逐渐接近0,实现低频部分过滤。巴特沃斯高通滤波器在VTK中对应vtkImageButterworthHighPass类。下面代码说明了vtkImageButterworthHighPass对图像进行高通滤波。

     

       1:     vtkSmartPointer<vtkImageButterworthLowPass> lowPassFilter =

       2:         vtkSmartPointer<vtkImageButterworthLowPass>::New();

       3:     lowPassFilter->SetInputConnection(fftFilter->GetOutputPort());

       4:     lowPassFilter->SetXCutOff(0.05);

       5:     lowPassFilter->SetYCutOff(0.05);

       6:     lowPassFilter->Update();

     

    vtkImageButterworthHighPass与理想高通滤波使用方法一致,这里没有给出傅里叶变换和逆变换代码。这里也需要设置X和Y轴的截止频率,为了便于比较,其截止频域与理想高通滤波设置一致。下图是执行结果。

     

    图5.40 巴特沃斯高通滤波器


    ==========欢迎转载,转载时请保留该声明信息==========

    版权归@东灵工作室所有,更多信息请访问东灵工作室


    教程系列导航:http://blog.csdn.net/www_doling_net/article/details/8763686

    ================================================


    展开全文
  • 图像频域滤波处理

    2015-04-23 21:32:54
    编程实现图像频域滤波处理。 低通滤波处理,比较理想滤波器和实际滤波器的处理效果。 高通滤波处理,比较理想滤波器和实际滤波器的处理效果。
  • 发现因为是走马观花的过了一遍,所以看得稀里糊涂的,然后许多地方混淆了概念,特别是关于图像频率域的部分的理解(包括图像频率域滤波之类的),所以下面总结一下这段时间重新看《数字图像处理》(电子工业出版社,...
  • 学习笔记:数字图像处理——频域滤波matlab 相角的改变对图像影响很大。 所以在滤波的时候,不改变相角,即等同影响实部和虚部,称之为零相移滤波器。 零相移滤波器必须是关于原点对称的。 基础代码: %% ...
  • 数值图像处理:图像的频域 一、图像高频信号和低频信号的理解 1.1 图像中的低频信号和高频信号也叫做低频分量和高频分量。 1)空间频率指的是图像中灰度值相对它的邻居点变化方式。如果一副图像中灰度从一边到另...
  • 图像处理频域滤波

    2020-06-10 13:11:38
    数字图像处理频域滤波ppt讲义,内容详尽,最后有仿真图
  • 由于傅里叶级数和频域纯粹是数学,所以我们会尽量最小化数学的部分,更注重其在数字图像处理中的应用。 频域分析 在频域我们不用时间分析信号,而是频率。 空间域和频域的不同 在时域,我们处理的是图像...
  • 频域处理的首要步骤就是将图像由时域变换到频域,因此,各种变换是图像处理研究的基础。 1.2 离散傅里叶变换(DFT) 傅里叶变换在时域和频域上都呈现离散的形式, 将时域信号的采样变换为在离散时间傅里叶变换频域...
  • 频域图像增强 基础知识: 图像变换技术:将原定义在图像空间的图像以某种形式转换到另外一些空间,并利用在这些空间的特有性质方便地进行一定的加工,最后再转换回图像空间以得到所需的效果。变换是双向的,或者说...
  • Matlab图像频域处理

    2016-11-19 01:06:02
    (2)分别高斯低通和高斯高通滤波器对图像进行频域处理。 (3)用频域拉普拉斯算子对此图像进行锐化处理。 二.结果 1.计算并画出此图像的中心化频率谱。     图1 图像中心化频率谱     2.分别高斯低通和...
  • 1.自选一幅图像,并对其分别添加一定强度的周期噪声和高斯噪声,然后分别采用高斯模板、中值滤波的时域方法以及傅里叶变换和小波变换的频率滤波方法对该含噪图像进行去噪处理,并基于PSNR值和视觉效果这两个指标来...
  • 1.频域值得坐标轴 1.在傅里叶变换中,低频主要决定图像在平滑区域中总体灰度级的现实,而高频决定图像细节部分,如边缘和噪声;  滤波器: 使低频通过而使高频衰减的滤波器称为“低通滤波器” 相反特性的滤波器...
  • 二维离散傅里叶变换、频域滤波、空间滤波和频域滤波的比较
1 2 3 4 5 ... 20
收藏数 9,620
精华内容 3,848