• 这说明空间域中的复杂的卷积算子,变换到频域中就成了简单的乘法,这样不仅计算简单,而且工程上易于实现。在FFT快速DCT(余弦变换)的数字实现之前,频域变换的计算是很头疼的事情,在计算效率上并不比普通卷积快...

         频域滤波的快速实现是工程领域的里程碑。频域滤波最让工程师兴奋的原因来自于这个公式:

    f(x)*g(y)<-->F(u)G(v)

        这说明空间域中的复杂的卷积算子,变换到频域中就成了简单的乘法,这样不仅计算简单,而且工程上易于实现。在FFT和快速DCT(余弦变换)的数字实现之前,频域变换的计算是很头疼的事情,在计算效率上并不比普通卷积快多少;在FFT和快读DCT实现之后,频域信号处理几乎无处不在。

        空间域滤波的算子可以变成频域滤波算子。假设当前图像尺寸为512x512,滤波算子大小为3x3,显然直接对滤波算子进行频域转换后的结果仍然为3x3,这是无法相乘的。这需要从定义出发来解释。

         卷积的定义是:f(t)*g(t)= 如果f和g是周期不同的周期函数,那么我们要用0补全函数周期,保证补全后的函数f’和g’有相同的周期,然后再进行卷积;否则不能保证f和g函数在同一个周期内进行卷积,导致不同周期的滤波结果混淆起来。

        回到原始的空间滤波上讲,平时我们的操作是遍历当前图形512x512的每个像素,用3x3的模板对当前像素领域进行卷积操作。其实这是简化后的操作,真正的操作其实是,构建512x512大小的卷积模板,其左上角3x3元素是执行空间域滤波操作的算子元素,剩下的元素全部为0,用这个512x512的卷积模板对图像进行二维卷积。由于除了3x3以外的元素都是0,所以我们实现的时候,只需要计算3x3模板范围的值,看起来就像只用3x3卷积模板对当前像素邻域做操作。

        明白了512x512图像的空间滤波算子其实也是512x512大小之后,那么我们就可以实现从空间域滤波到频域滤波。构建一个512x512的滤波算子,把3x3模板参数放在算子左上角(放在不同位置会导致滤波结果变得奇怪,比如图像被循环位移),然后进行频域转换生成512x512的频域模板,将其与频域图像相乘(注意如果频域图像中心化,那么频域模板也要中心化),然后还原到空间域图像,就完成一次和空间域滤波结果相同的频域滤波。

       频域滤波就完美无瑕了吗?当然不是。假设我的图像大小为512x512,灰度范围为0~255,那么每个像素只需要用1 byte表示,共512x512 bytes;进行频域滤波之后,我需要用两个float甚至double矩阵来表示频域图像的实部和虚部,这就需要512x512x4x2或者512x512x8x2 bytes,一下子内存消耗多了8~16倍;如果频域转换精度不够高的话,经过频域转换再还原到空间域的图像会有信号损失,而不会完全还原到原始图像。请注意,计算机常用的压缩算法会用到频域转换,原因是频率滤波后,大部分图像信息集中到原点附近和其他少数几个区域,大部分区域是不重要的、或者值为0的,这样就可以大大减小数据的存储尺寸;然而在实际的计算中,压缩数据一般要解压为原始数据才能执行相关的计算和显示操作,因此频域方法可以助力数据存储压缩,却无助于减小计算中的数据的大小。

    展开全文
  • 1、空间域增强是指增强构成图像的像素。指的是直接对这些像素进行操作的过程。
    1、空间域增强是指增强构成图像的像素。指的是直接对这些像素进行操作的过程。
    
    展开全文
  • 文章参考: 韩 昊:https://www.cnblogs.com/h2zZhou/p/8405717.html M李丽:...关系: 傅里叶变换是实现从空域或时域到频域的转换工具 文章目录一、时域二、频域...

    文章参考
    韩 昊:https://www.cnblogs.com/h2zZhou/p/8405717.html
    M李丽:https://blog.csdn.net/qq_32211827/article/details/78338902
    赵越:https://zhuanlan.zhihu.com/p/21298832
    关系: 傅里叶变换是实现从空域或时域到频域的转换工具

    一、时域

    时域(时间域)——自变量是时间,即横轴是时间,纵轴是信号的变化。其动态信号x(t)是描述信号在不同时刻取值的函数。

    时域是真实世界,是惟一实际存在的域
    从我们出生,我们看到的世界都以时间贯穿,股票的走势、人的身高、汽车的轨迹都会随着时间发生改变。这种以时间作为参照来观察动态世界的方法我们称其为时域分析。

    二、频域

    频率域(frequency domain。)任何一个波形都可以分解成多个正弦波之和。每个正弦波都有自己的频率和振幅。所以任意一个波形信号有自己的频率和振幅的集合。频率域就是空间域经过傅立叶变换的信号

    频域最重要的性质是:它不是真实的,而是一个数学构造。时域是惟一客观存在的域,而频域是一个遵循特定规则的数学范畴。

    频域实际上是时域信号进行傅立叶变换的数学结果,使用频域来观察世界的话,你会发现世界是永恒不变的。

    时域中的一段音乐:轨迹动态变化着
    在这里插入图片描述
    频域中的一段音乐:一个一个静止的乐符序列
    在这里插入图片描述
    从中细化处一个乐符:
    在这里插入图片描述
    在时域,我们观察到钢琴的琴弦一会上一会下的摆动,就如同一支股票的走势;而在频域,只有那一个永恒的音符

    正如:
    在这里插入图片描述
    正弦波是频域中唯一存在的波形,这是频域中最重要的规则,即正弦波是对频域的描述,因为时域中的任何波形都可用正弦波合成。这是正弦波的一个非常重要的性质。然而,它并不是正弦波的独有特性,还有许多其他的波形也有这样的性质。

    三、空间域:图像平面本身,以图像像素直接进行处理为基础

    空间域又称图像空间(image space)。由图像像元组成的空间。在图像空间中以长度(距离)为自变量直接对像元值进行处理称为空间域处理。

    空间域(spatial domain)也叫空域,即所说的像素域,在空域的处理就是在像素级的处理,如在像素级的图像叠加。通过傅立叶变换后,得到的是图像的频谱。表示图像的能量梯度。

    展开全文
  • 图像滤波: 滤波是信号处理机图像处理中的一个基本操作。滤波去除图像中的噪声,提取感兴趣的特征,...图像中的频域和空域:空间域指用图像的灰度值来描述一幅图像;而频域指用图像灰度值的变化来描述一幅图像。而低

    一篇写的不错的博文http://blog.csdn.net/lu597203933/article/details/17252285

    图像滤波:

    滤波是信号处理机图像处理中的一个基本操作。滤波去除图像中的噪声,提取感兴趣的特征,允许图像重采样(图像进行一系列的几何变换输出新的图像)。

    图像中的频域和空域:空间域指用图像的灰度值来描述一幅图像;而频域指用图像灰度值的变化来描述一幅图像。而低通滤波器和高通滤波器的概念就是在频域中产生的。

    低通滤波器指去除图像中的高频成分,而高通滤波器指去除图像中的低频成分。

    后面将介绍低通滤波器—均值和高斯滤波器;中值滤波器—非线性滤波器;高通滤波器—sobel算子(方向滤波器)和拉普拉斯变换(二阶导数)。其中利用方向滤波器和拉普拉斯变换可以对图像的边缘进行检测。

    二:低通滤波器(平滑图像)

    <1>cv::blur函数:每个像素替换为相邻矩形内像素的平均值

    <2>cv::GaussianBlur函数:通过高斯核来进行替换

    Code:

    Mat result;                              // 线性平滑 滤波  每个像素替换为相邻矩形内像素的平均值
    	blur(image, result,Size(5,5));         // filter2D可以自定义核进行线性滤波
    
    	Mat gauResult;
    	GaussianBlur(image, gauResult, Size(5,5), 1.5);    // 高斯平滑 模糊  线性滤波器

    Result:

    sourceImage:

    BlurResult:


    GaussianBlur:


    低通滤波器的效果是对图像进行模糊和平滑,减弱了物体边缘可见的快速变化。它是一种线性滤波器,原理是与核进行卷积运算,此时的核内定,当我们需要指定核函数进行卷积时可以用filter2D函数,它的使用见blog:http://blog.csdn.net/lu597203933/article/details/16811851。 

    三:中值滤波器

    中值滤波器是非线性滤波器,它的原理是仅仅计算这组数的中值,并用中值替换当前的像素值。因此对于去除椒盐噪点非常有用。

    Code:

    Mat medianResult;
    	medianBlur(image, medianResult,5);  // 是一个非线性的滤波器,利用中值替换当前的像素值,对于去除椒盐噪点尤为有用

    Result:

     

    三:方向滤波器—sobel算子

    Sobel算子就是通过卷积操作来计算图像的一阶导数,由于边缘处图像灰度变化率较大,因此可以用sobel算子来进行边缘检测。Sobel算子的核定义为:

    y坐标轴:


    x坐标轴:


    Sobel函数:Sobel(InputArray src, OutputArray dst, int ddepth,

                             int dx, int dy, int ksize=3,

                             doublescale=1,double delta=0,

                             int borderType=BORDER_DEFAULT );

    其中ddepth为图像类型, (dx,dy) = (1,0)为x方向导数,(dx,dy) = (0,1)为y方向导数,scale和delta的作用是再保存前可以对图像进行缩放,公式为:dst =dst * scale + delta.

    Code:

    int main()
    {
    	Mat image = imread("F:\\lena.png", 0);
    	if(!image.data)
    	{
    		cout << "Fail to load image" << endl;
    		return 0;
    	}
    	Mat sobel_x, sobel_y;
    	//Sobel(image, sobel_x, CV_8U, 1, 0, 3, 0.4, 128);
    	//Sobel(image, sobel_y, CV_8U, 0, 1, 3, 0.4, 128);
    
    	Sobel(image, sobel_x, CV_16S, 1, 0);  // 因为后面要相加 所以用16位有符号的整数来表示  另外导数肯定含有负数
    	Sobel(image, sobel_y, CV_16S, 0, 1);
    	Mat sobel;
    	sobel = abs(sobel_x) + abs(sobel_y);
    
    	double sobmin, sobmax;
    	minMaxLoc(sobel, &sobmin, &sobmax);
    	Mat sobelImage;
    	sobel.convertTo(sobelImage, CV_8U, -255.0/sobmax, 255);   // 等价于  saturate_cast(a*sobel + b)
    	
    	Mat sobelThresholded;
    	int thre = 200;
    	threshold(sobelImage, sobelThresholded, thre, 255, THRESH_BINARY);
    
    	namedWindow("sobelImage", 0);
    	imshow("sobelImage", sobelImage);
    	namedWindow("sobelThresholded", 0);
    	imshow("sobelThresholded", sobelThresholded);
    
    	waitKey(0);
    	return 0;
    }

    Result:


    当然除了sobel算子,还有其它的算子,如Scharr算子,它更精确、快。它的核为:

     

    Sobel(image, sobelX, CV_16S, 1, 0,CV_SCHARR);

    或者:

    Scharr(image, scharrX, CV_16S, 1, 0, 3);

    四:拉普拉斯变换

    拉普拉斯变化时基于图像导数的高通滤波器,计算二阶导数以衡量图像的弯曲度

    Code:

    int main()
    {
    	Mat image = imread("F:\\lena.png", 0);
    	if(!image.data)
    	{
    		cout << "Fail to load image" << endl;
    		return 0;
    	}
    	Mat laplacian;
    	Laplacian(image, laplacian, CV_16S, 3);  // 二阶导数肯定含有负数。。  基于图像导数的高通滤波器,计算二阶导数以衡量图像的弯曲度
    	laplacian = abs(laplacian);
    	Mat laplacianImage;
    	laplacian.convertTo(laplacianImage, CV_8U);
    	namedWindow("laplacianImage");
    	imshow("laplacianImage", laplacianImage);
    	waitKey(0);
    	return 0;
    
    }

    Result:



    展开全文
  • 空间域滤波是在图像空间中借助模板对图像进行邻域操作,处理图像的每一个像素的取值都是根据模板对输入像素邻域内的像素值进行加权叠加得到的。空间域滤波是让图像频域空间内某个范围的分量受到抑制,同时保证其他...

    1频域滤波与空间域滤波比较

    (1)空间域滤波简介

            空间域滤波是在图像空间中借助模板对图像进行邻域操作,处理图像的每一个像素的取值都是根据模板对输入像素邻域内的像素值进行加权叠加得到的,空间域滤波是应用模板卷积对图像每一个像素进行局部处理。

     

    (2)频域滤波器简介

            频域滤波是图像经傅里叶变换后,边缘和其他尖锐信息在图像中主要出于高频部分,因此,可以通过衰减图像傅里叶变换中的高频成分的范围来实现。

     

    (3)频域滤波与空间域滤波的比较

           1)在空间域滤波中,平滑滤波器算法简单,处理速度快,但在降噪同时使图像产生模糊,特别是在边缘和细节处。中值滤波器对椒盐噪声抑制效果比较好,但对点、线等细节较多的图像却不太合适。低通滤波器对椒盐噪声过滤效果差,图像较为模糊。空间域滤波算法简单,处理速度较快,在锐化方面效果明显,线条突出。

            2)在频域滤波中,去噪同时将会导致边缘信息损失,使图像边缘模糊,并且产生振铃效果。频域滤波算法复杂,计算速度慢,有微量振铃效果,图像平缓。

     

    (4)频域滤波与空间域滤波的联系

             频域滤波较空域而言更为直观,频域下滤波器表达了一系列空域处理(平滑、锐化等)的本质,即对高于/低于某一特定频率的灰度变化信息予以滤除,而对其他的灰度变化基本保持不变。这种直观性增加了频域滤波器设计的合理性,使得我们更容易设计出针对特定问题的频域,而想直接在空域中设计出一个能够完成滤波任务的滤波器(卷积模板)是相当困难的。

             为了得到合适的空域滤波器,可以首先设计频域滤波器H(u, v)而后根据卷积定理,将H(u, v)反变换至空域后就得到了空域中滤波使用的卷积模板h(x, y),从而解决空域滤波器的设计难题。然而,直接反变换得到的空域卷积模板h(x, y)同H(u, v)等大,要计算这样大的模板与图像的卷积将是非常低效的。利用以全尺寸的空域滤波器h(x, y)为指导设计出的形状与之类似的小空域卷积模板,同样可以取得类似于频域滤波器H(u, v)的滤波效果,这就为从频域出发,最终设计出具有实用价值的空域模板提供了一种完美的解决方案。

     

    (5)空间域高斯滤波与频域高斯滤波的比较

             1)方差:空域高斯函数的方差越大,高斯函数越宽,模板尺寸越大,处理的图像越模糊;频域高斯函数的方差越小,高斯函数越窄,滤除的低频成分越多,图像越模糊。

             2)计算量:空域高斯滤波的计算花费随着模板的规模的增大而增大;频域高斯滤波的计算量独立于滤波函数。

     

    (6)振铃效应

            振铃效应(Ringingeffect)是影响复原图像质量的众多因素之一,其典型表现是在图像灰度剧烈变化的邻域出现类吉布斯(Gibbs)分布--满足给定约束条件且熵最大的分布的振荡。

            在图像盲复原中,振铃效应是一个不可忽视的问题,其严重降低了复原图像的质量, ,并且使得难于对复原图像进行后续处理。如果点扩振铃效应是由于在图像复原中选取了不适当的图像模型造成的,在图像盲复原中散函数选择不准确也是引起复原结果产生振铃效应的另一个原因,特别是选用的点扩散函数尺寸大于真实点扩散函数尺寸时,振铃现象更为明显。振铃效应产生的直接原因是图像退化过程中信息量的丢失,尤其是高频信息的丢失。

            铃效应对复原图像质量影响严重,众多学者对抑制振铃效应的方法进行了广泛研究,然而大多数图像复原方法在这一点上都有所不足,造成了复原过程中的振铃效应几乎不可避免,尤其对于有噪声存在的场合,它会混淆图像的高频特性,使得振铃效应带来的影响更加显著。

     

    (7)参考文献

    http://www.doc88.com/p - 3022161431207.html

    http: / /blog.csdn.net/u010839382/article/details/41908541

    展开全文
  • 数字图像空间域滤波和频域滤波 一.实验目的 1.  掌握图像滤波的基本定义及目的。 2.  理解空间域滤波的基本原理及方法。 3.  掌握进行图像的空域滤波的方法。 4.  掌握傅立叶变换及逆变换的基本原理...
  • 图像处理中,我们会频繁用到这三个概念,这里整理了网上优秀的博客。供大家交流学习。 一、什么是时域  时域是描述数学函数或物理信号对时间的关系。例如一个信号的时域波形可以表达信号随着时间的变化。 ...
  • 图像处理中,我们会频繁用到这三个概念,这里整理了网上优秀的博客。供大家交流学习。 一、什么是时域  时域是描述数学函数或物理信号对时间的关系。例如一个信号的时域波形可以表达信号随着时间的变化。 ...
  • 空间域和频域结合的图像增强技术及实现 徐炜君1,刘国忠2(1.大庆石油学院应用技术学院,河北秦皇岛066004;2.北京信息科技大学,北京100192) 摘 要:图像增强是数字图像的预处理,对图像整体或局部特征能有效地...
  • 换一个角度,如果将f(x,y)视为幅值变化的二维信号,则可以通过某些变换手段(如傅里叶变换、离散余弦变换、沃尔什变换小波变换等)在频域下对图像进行处理了 因为在频率就是一些特性比较突出,容易处理。...
  • 图像空间域(spatial domain)主要指组成图像的像素点集合。spatial domain process是对空间像素点的直接操作。如果用公式描述为: \( g(x,y) = T{\left[f(x,y)\right]} \) \(f(x,y)\)是输入图像,\(g(x,y)\)是...
  • 一般我们见到的简单的图像处理都是空间域的处理。即图像是一个二维图像,每个点都有对应的坐标。 图像的频域理解起来并不是那么简单,因此我在这里说一下个人理解,希望帮助到需要帮助的人。本篇博文使用Halcon软件...
  • 由于傅里叶级数和频域纯粹是数学,所以我们会尽量最小化数学的部分,更注重其在数字图像处理中的应用。 频域分析 在频域我们不用时间分析信号,而是频率。 空间域和频域的不同 在时域,我们处理的是图像...
  • 数值图像处理:图像的频域 一、图像高频信号低频信号的理解 1.1 图像中的低频信号高频信号也叫做低频分量高频分量。 1)空间频率指的是图像中灰度值相对它的邻居点变化方式。如果一副图像中灰度从一边到另...
  • 数字图像处理方法的重要性源于两个主要的应用领域:改善图示信息以便人们解释;为存储、传输表示而对图像数据进行处理,以便于机器自动理解。 一幅数字图像可定义为一个二维函数f(x,y),其中xy是空间(平面)...
  • 而在数字图像处理中滤波可以分为空间域滤波频率域滤波。这篇博文主要来学习下空间域滤波。空间域滤波机理 *空间滤波器由一个邻域(典型的是一个较小的矩形)构成,对该邻域所包围的像素按照一定的操作计算出目标...
  • 一般我们看到的图像可以表示为函数f(x,y),xy是空间上的坐标,此时的图像称为空间域图像;经过频域变换后的图像称为频域图像。离散情况下,一维傅里叶变换有如下形式。同时这里还证明了,对原始数据乘以(-1)^x之后...
  • 图像空间域通过傅里叶变换等变换转换到频域,目的在于更好处理且计算速度快。 1.频域处理基础 通过狄里赫莱条件(有限个间断点、有限个极值点、绝对可积)定义傅里叶变换。 通过了解FT的性质对图像进行处理...
1 2 3 4 5 ... 20
收藏数 3,982
精华内容 1,592