精华内容
下载资源
问答
  • 空间域
    千次阅读
    2022-03-17 10:00:50

    空间域滤波就是对图像进行二维卷积运算,不同的卷积核会有不同的效果

    低通滤波器是消除图像中高频部分,但保留低频部分。高通滤波器消除低频部分.
    高频:图像中灰度变化剧烈的点,一般是图像轮廓或者是噪声。
    低频:图像中平坦的,灰度变化不大的点,图像中的大部分区域。
    故:高通滤波可以检测图像中尖锐、变化明显的地方,经常应用在边缘提取;低通滤波可以让图像变得光滑,滤除图像中的噪声

    常用的低通滤波有:均值滤波器,高斯滤波器,中值滤波器
    常用的高通滤波有:基于Canny,Sobel,Laplace,Prewitt,Robert算子等各种边缘滤波

    均值滤波:
    在这里插入图片描述
    高斯低通滤波:
    在这里插入图片描述
    中值滤波:
    在这里插入图片描述
    边缘检测算子:
    图像边缘是图像最基本的特征,所谓边缘(Edge) 是指图像局部特性的不连续性。灰度或结构等信息的突变处称之为边缘。边缘是一个区域的结束,也是另一个区域的开始,利用该特征可以分割图像。
    边缘通常可以通过一阶导数或二阶导数检测得到。一阶导数是以最大值作为对应的边缘的位置,而二阶导数则以过零点作为对应边缘的位置。
    在这里插入图片描述
    在这里插入图片描述

    更多相关内容
  • 通过MATLAB实现空间与图像增强,注意图像和文件放在同一目录下
  • 图像增强处理:设计一套空间域与频率域结合的图像增强算法,处理以下任一组图片中的带噪声图像,去除噪声,提高图像质量。 (1)已知:噪声为随机噪声和周期噪声混合噪声; (2)要求: a)去噪处理后,计算均方误差...
  • 空间域融合方法直接在像素级别处理输入图像,以产生高质量的融合图像。 过去提出了许多空间域技术。 在本文中,通过结合简单空间和基于PCA的融合技术,提出了一种新颖的优化混合空间融合方法,以产生比单空间技术更...
  • 本文档包含数字图像的空间域滤波处理,包括标准均值滤波、加权均值滤波、中值滤波。附代码。
  • 本期视频时长约70分钟,首先对图像空间域滤波的数学机理,即二维相关和二维卷积计算,进行了详细的介绍;然后通过大量的计算案例,全方位解析了MATLAB图像空间域滤波函数imfilter的具体用法,并深入讲解了imfilter...
  • 【图像融合】基于区域的空间域图像融合.md
  • 基于空间域差分的φ-OTDR光纤分布式扰动传感器定位方法研究
  • 数字图像处理空间域的增强 matlab等等
  • 空间域滤波

    2012-02-18 02:45:48
    空间域滤波,包括线性滤波非线性滤波,并对此进行详细介绍
  • MATLAB教学视频,数字图像处理类:本期视频时长约85分钟,深入解析了均值、加权均值滤波器,拉普拉斯锐化滤波器,中值滤波器,...通过大量的图像滤波处理案例,全方位讲解了各类空间域滤波器,在图像处理上的具体应用。
  • 空间域进行位场延拓,需要数值求解第一类Fredholm积分方程,由于所得方程组系数矩阵不是稀疏矩 阵,求解该方程组需要的计算机内存大,计算量大,导致延拓算法在一般计算机上难以实现,阻碍了对空间域位场 ...
  • 关于空间域卷积和频率域卷积

    千次阅读 2021-05-31 11:53:31
    首先,我们要明确的概念是空间域和频率域,我们通过imread函数得到的一幅图像(基本上也是我们平时说的图像),是处在空间域的,也就是说用f(x,y)表征的某一点的灰度值(或者是单色图像中某一点的亮度)的这种形式,...

    前段时间看了很多的概念和知识,发现因为是走马观花的过了一遍,所以看得稀里糊涂的,然后许多地方混淆了概念,特别是关于图像频率域的部分的理解(包括图像频率域滤波之类的),所以下面总结一下这段时间重新看《数字图像处理》(电子工业出版社,Matlab本科教学版)第三章重新收获的关于频率域的理解。

    首先,我们要明确的概念是空间域和频率域,我们通过imread函数得到的一幅图像(基本上也是我们平时说的图像),是处在空间域的,也就是说用f(x,y)表征的某一点的灰度值(或者是单色图像中某一点的亮度)的这种形式,就是在空间域里面。

    那么什么是图像的频率域呢?理解了图像的频率的概念,就不难理解频率域。我个人理解是这么类比的,图像可以看成是一个特殊的二维的信号,然后某一点的灰度级,其实就是图像信号上这一点的”幅度“,那么根据信号的概念,频率就是信号变化的快慢,这样就好理解了,所谓的频率也就是这个图空间上的灰度变换的快慢,或者是叫图像的梯度变化,什么地方梯度频率比较大呢?这在图像中自然是“边界”比较大。举个例子来讲,如果一幅图整体变化不大(比如说是一面墙的图),那么他在频率域下低频成分就很多,而高频成分就极少。而显然如果是一幅国际象棋棋盘,他的高频成分相对刚才那幅墙的图片来说,肯定多得多。

    然后从图像域变换到频率域,我们用的函数就是大名鼎鼎的二维离散傅里叶变换了:

    令f(x,y)表示一幅大小为MXN像素的数字图像,其中,x=0,1,2······M-1, y=0,1,2······N-1,由F(u,v)表示的f(x,y)的二维离散傅里叶变换(DFT)由下式给出:

    在这里插入图片描述
    式子当中,u也是属于0到M-1,v属于0到N-1。频率域就是属于u,v作为频率变量,由F(u,v)构成的坐标系,这块MXN的区域我们通常称为频率矩形,很明显频率矩形的大小和输入图像的大小相同。

    有傅里叶变换,当然就有傅里叶反变换(IDFT):
    在这里插入图片描述
    这里多提一句,按照书上的说法,在DFT的表达式中,1/MN项出现在正变换前面,而在有些表达式中就如上式那样出现在反变换前面,因为Matlab采用的是后者,所以书上的公式就是用的上式那种了。

    由上面的公式可以看出几个点:

    1. 不难看出,F(0,0)等于f(x,y)平均值的MN倍,因为带入到傅里叶变换公式中可以得到F(0,0)实际上就是图像中所有f(x,y)求和。所以我们也常把F(0,0)称作傅里叶变换的直流分量。

    2. 我们可以很明显的看出,在频率域中的一点(u,v)的值F(u,v),他并不决定于空间域中(x,y)的值,而是跟整个图像空间域中的所有的点都有关系,因此,在频率域中的一点(u,v)的值,例如说F(5,5)和空间域上的这一点f(5,5)并没有什么关系,而是决定于整幅图像。

    接下来书上讲了傅里叶变换的一些性质,还有傅里叶谱,变换的相角定义,功率谱定义等等概念,因为打公式太麻烦,这里就不多赘述了,可以在网上找到现成的公式定义和概念。

    傅里叶变换性质里面个人认为比较重要的是周期性,因为周期性的缘故,所以在傅里叶变换过后的频率图里,四角的是低频分量(具体的我也不太清楚,但是比如低频分量),我们到时候会把低频分量移到中心位置来,因为大部分图像的低频分量其实更多,所以会在边角上比较亮,放到中间来比较好看。

    下面举例一幅图说明看一幅频率域傅里叶谱图:
    f=imread(‘3.jpg’);
    imshow(f);%显示原图
    F=fft2(f);%做傅里叶变换
    S=abs(F);%取傅里叶谱

    figure,imshow(S,[]);%显示傅里叶谱
    在这里插入图片描述
    左图是原图,右图是频率图,频率图中的亮暗说明了对应频率的多少,上面已经谈过,如果从右图可以看出来是边上的四个点比较亮,这说明原图中低频分量比较多,也就是说原图中的变化比较少。换句话来说,如果原图看成地形的话,那说明大部分地形非常平坦。

    我们可以通过公式(欧拉公式e^(2pij)=1以及指数的计算),可以很容易发现(图是盗的- -):
    在这里插入图片描述
    上式最左边那个符号表示求傅里叶变换。由上式知道这么弄一番之后,是可以把频率图的原点放到中心的。

    在matlab中用的是fftshift函数。

    居中过后的频率谱显示如下:
    在这里插入图片描述
    可以看得更清楚一些,这个时候因为其实频率谱的范围是很大的,相对于低频分量来说,高频分量的值比较少,所以可以用对数变换(log(1+abs(F))将高频细节扩展出来,显示如下:
    在这里插入图片描述
    下面谈谈对滤波的理解,不知道是不是完全正确。

    滤波和算子都是数字图像处理的基本操作,其中滤波是指在像素领域(空间域)内做领域处理(中值滤波、均值滤波)或者在图像频域内(需要先做傅里叶变换)做处理(低通滤波、高通滤波、带通滤波)。算子一般就是指的是卷积算子了。

    先来谈谈空间域的滤波。什么叫领域处理呢?领域处理的就是对领域进行一系列的操作:

    (1) 选取中心点(x,y);

    (2) 仅对预先定义的点(x,y)的领域内的像素执行操作;

    (3) 令运算结果为该点处的响应;

    (4) 对图像中的每一点重复该处理。

    中心点移动的过程中会产生新的领域,每个领域对应输入图像上的一个像素。用来标识该处理的两个主要术语是领域处理和空间滤波,其中后者更为通用。如果对领域中像素执行的计算是线性的,则称该操作是线性空间滤波。(也用术语空间卷积);否则称为非线性空间滤波。

    线性操作包括领域中的每个像素乘以相应的系数,将结果求和,从而得到点(x,y)处的响应。若领域的大小为mxn,则需要mn个系数。这些系数被排列为一个矩阵,称为滤波器(模板)/滤波模板/核/掩模或者窗口。其中前三个属于最常见。为变得更明显一些,也用卷积滤波、卷积模板或者卷积核等术语。

    再来说下卷积算子是个什么意思:

    在这里盗一下网上的图:
    在这里插入图片描述
    然后如上所示,图片中右上角的那个矩阵h=[2 9 4;

                                        7 5 3;
    
                                        6 1 8;]
    

    就是后面经常提到的模板了,在相关书本上一般也写作w(x,y)。如果把基于乘积和的值用来替代成原来的(x,y)的值,那么这种滤波方式叫做线性滤波(比如拉普拉斯算子)。其他的叫做非线性滤波。

    空间域滤波的最常见的就是中值滤波和均值滤波,顾名思义,中值滤波就是用图像领域中所包含的像素的排序集合的中值进行替代,而均值滤波是用领域像素们的均值进行滤波。中值滤波也属于统计排序滤波。

    接下来介绍频率域的滤波:

    首先,有个定理,叫做卷积定理:

    f(x,y)★h(x,y)óH(u,v)F(u,v)

    上式中★代表卷积,ó代表一个傅里叶变换对。

    频率域的滤波比较多的就是高斯低通/高斯高通滤波器了,和空间域稍微有区别的是,在频率域内不是进行的领域处理,而是进行的是函数修改:

    G(u,v)= H(u,v)F(u,v)

    函数H(u,v)又叫做滤波器传递函数,频率域滤波的思想就是选择一个滤波器传递函数,该函数按照指定的方式修改F(u,v)。

    由卷积定理可知,在频率域中让F(u,v)乘以空间滤波器的傅里叶变换H(u,v),再做一个傅里叶反变换,就可以得到用空间域滤波器滤波后的图像了(这也是相当于用DFT的方式在做卷积,用这种方式做卷积又叫循环卷积)。

    值得一提的是,注意,当作循环卷积的时候,因为F和H都是周期函数,所以G必然也是周期函数,在周期接近函数非零部分的持续周期时对周期函数进行卷积会引起相邻周期的串扰(这种串扰又叫折叠误差),所以要通过补零的方法来避免。比较拗口,还是举例来说明:一个上黑下白的方块图片,在DFT卷积的时候我们假设在处理上边沿了,结果因为是周期的所以上边沿其实在处理时会受到上边沿上面另一个方块的下边沿的白色部分的影响(具体的例子见书P63页),补0之后就不会受影响了。

    展开全文
  • MATLAB教学视频空间域图像增强之图像的空间域滤波算法篇-MATLAB教学视频:空间域图像增强之图像的空间域滤波(算法篇).pdf MATLAB教学视频,数字图像处理类:本期视频时长约70分钟,首先对图像空间域滤波的数学...
  • 空间域图像增强matlab实现,含有代码,能直接用于实验,含有解析、
  • 图像处理-空间域平滑滤波

    千次阅读 2019-08-16 12:51:26
    个人博客:http://www.chenjianqu.com/ 原文链接:... 目录: 1.空间域和频域的概念 2.图像滤波 3.图像卷积 4.常用空间域滤波器 5.线性点运算 6.均值滤波 7.加权均值滤波 ...

    个人博客:http://www.chenjianqu.com/

    原文链接:http://www.chenjianqu.com/show-12.html

    目录:

    1.       空间域和频域的概念

    2.       图像滤波

    3.       图像卷积

    4.       常用空间域滤波器

    5.       线性点运算

    6.       均值滤波

    7.       加权均值滤波

    8.       高斯滤波

    9.       阈值平均滤波

     

    空间域和频域的概念

    空间域与频率域为我们提供了不同的视角。在空间域中,函数自变量(x,y)被视为二维空间中的一个点,数字图像f(x,y)即为一个定义在二维空间中的矩形区域上的离散函数;换一个角度,如果将f(x,y)视为幅值变化的二维信号,则可以通过某些变换手段(如傅里叶变换、离散余弦变换、沃尔什变换和小波变换等)在频域下对图像进行处理了  因为在频率域就是一些特性比较突出,容易处理。比如在空间图像里不好找出噪声的模式,如果变换到频率域,则比较好找出噪声的模式,并能更容易的处理。

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

    频率域。 英文: spatial frequency domain。 释义: 以频率(即波数)为自变量描述图像的特征,可以将一幅图像像元值在空间上的变化分解为具有不同振幅、空间频率和相位的简振函数的线性叠加,图像中各种频率成分的组成和分布称为空间频谱。这种对图像的频率特征进行分解、处理和分析称为频率域处理或波数域处理。

     

    图像滤波

    图像滤波,即在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制,是图像预处理中不可缺少的操作,其处理效果的好坏将直接响到后续图像处理和分析的有效性和可靠性。(滤波就是要去除没用的信息,保留有用的信息,可能是低频,也可能是高频)。

    滤波的目:1. 是抽出对象的特征作为图像识别的特征模式;  2. 为适应图像处理的要求,消除图像数字化时所混入的噪声。

    滤波可分为空间域滤波可频域滤波,前者通过图像卷积运算实现,后者通过傅立叶变换实现。

     

    图像卷积   

        卷积运算:可看作是加权求和的过程,使用到的图像区域中的每个像素分别于卷积核(权矩阵)的每个元素对应相乘,所有乘积之和作为区域中心像素的新值。

    卷积核:卷积时使用到的权用一个矩阵表示,该矩阵是一个权矩阵。不同的卷积核对应不同的滤波器。

    边界问题:当处理图像边界像素时,卷积核与图像使用区域不能匹配,卷积核的中心与边界像素点对应,卷积运算将出现问题。解决办法:1.复制边界,2.忽略边界,3.设定边界值。

    卷积示例:

    3 * 3 的像素区域R与卷积核G的卷积运算

    1.jpg

    R5(中心像素)=R1G1 + R2G2 + R3G3 + R4G4 + R5G5 + R6G6 + R7G7 + R8G8 + R9G9

    代码实现:(对边缘不进行处理)

    //kernel为float类型的卷积核
    Mat ConvolutionOperation(Mat &src, Mat &kernel)
    {
        Mat dst(src.rows, src.cols, src.type(), Scalar(0));
        if (src.channels() == 1)
        {
            int rowsSub = int(kernel.rows / 2);
            int colsSub = int(kernel.cols / 2);
            for (int i = 0; i < src.rows; i++) {
                for (int j = 0; j < src.cols; j++)
                {
                    if (i < rowsSub || i >= src.rows - rowsSub || j < colsSub || j >= src.cols - colsSub) {
                        dst.at<uchar>(i, j) = src.at<uchar>(i, j);
                    }
                    else {
                        float sum = 0;
                        for (int ki = 0; ki < kernel.rows; ki++)
                        {
                            for (int kj = 0; kj < kernel.cols; kj++)
                            {
                                int i_ = i + ki - rowsSub;
                                int j_ = j + kj - colsSub;
                                sum += src.at<uchar>(i_, j_)*kernel.at<float>(ki, kj);
                            }
                        }
                        dst.at<uchar>(i, j) = int(sum);
                    }
                }
            }
     
        }
        return dst;
    }

    常用的空间域滤波器

    根据滤波的效果,空间域滤波可分为空间平滑滤波器和空间锐化滤波器。平滑滤波报告均值滤波、加权均值滤波、阈值平均滤波、中值滤波、高斯滤波等,应用时他们仅是卷积核之间的不同。

    平滑滤波用于模糊处理和降低噪声。模糊处理常用于预处理任务中,如在目标提取之前去除图像中的一些琐碎细节,以及桥接直线或曲线的缝隙。通过线性或非线性平滑滤波也可降低噪声。

    以下分别介绍各个滤波器。

     

    线性点运算

    对图像进行点运算
    Mat LinearPointOperation_Float(Mat& src, double a, double b)
    {
        Mat dst(src.rows, src.cols, src.type(), Scalar(0));
        if (src.channels() == 1)
            for (int i = 0; i < src.rows; i++) {
                for (int j = 0; j < src.cols; j++)
                    dst.at<float>(i, j) = src.at<float>(i, j)*a+b;
        return dst;
    }

    空间域平滑滤波

    1均值滤波

    卷积核:

    2.png

    代码实现:

    Mat MeanFiltering(Mat &src, int n)
    {
        Mat one = Mat::ones(Size(9, 9), CV_32FC1);
        Mat kernel = LinearPointOperation_Float(one, 1 / 81.0, 0);
        Mat dst = ConvolutionOperation(src, kernel);
        return dst;
    }

    运行结果:

    3.png

     

    2.加权均值滤波

    卷积核:

    4.png

    代码实现:

    Mat WeightedMeanFiltering(Mat &src, Mat &kernel)
    {
        Mat dst = ConvolutionOperation(src, kernel);
        return dst;
    }
    Mat WeightedKernel = (Mat_<float>(3, 3) << 1, 2, 1, 2, 4, 2, 1, 2, 1);   
    Mat kernel = LinearPointOperation_Float(WeightedKernel, 1 / 16.0, 0);
    Mat dst = WeightedMeanFiltering(img, kernel);

    运行效果:

    5.png

     

    3. 高斯滤波器

    一维高斯分布:

    6.png

    二维高斯分布:

    7.png

    高斯模板:

    8.png

    9.png

     

    代码实现:

    Mat GaussFiltering(Mat &src, Mat &kernel)
    {
       Mat dst = ConvolutionOperation(src, kernel);
       return dst;
    }
    Mat GaussKernel = (Mat_<float>(5, 5) << 1, 4, 7, 4, 1, 4, 16, 26, 16,4,7,26,41,26,7,4,16,26,16,4,1,4,7,4,1);
    Mat kernel = LinearPointOperation_Float(GaussKernel, 1 / 273.0, 0);
    Mat dst = GaussFiltering(img, kernel);
    imshow("dst", dst);

    运行结果:

    10.png

     

    4. 阈值平均滤波

    顾名思义,阈值平均滤波就是在平均滤波的基础上加上阈值的约束,即当像素点与图像均值的差小于设定的阈值时,输出像素点等于原像素点,否则求其对该像素点进行求模板均值。

    代码实现:

    求图像均值:

    double ImageMean(Mat &src)
    {
        long sum = 0;
        if (src.channels() == 1) {
            for (int i = 0; i < src.rows; i++) 
            {
                uchar *srcRow = src.ptr(i);
                for (int j = 0; j < src.cols; j++)
                    sum += srcRow[j];
            }
        }
        return double(sum*1.0 / (src.cols*src.rows));
    }

    实现阈值均值滤波:

    Mat ThresholdMeanFiltering(Mat &src,int n,int thre)
    {
        //获得卷积核
        Mat kernel = Mat::ones(Size(n, n), CV_32FC1);
        kernel = LinearPointOperation_Float(kernel, 1 / (1.0*n*n), 0);
        //创建输出图像
        Mat dst(src.rows, src.cols, src.type(), Scalar(0));
        if (src.channels() == 1)
        {
            double m = ImageMean(src);//计算出图像均值
            int rowsSub = int(kernel.rows / 2);
            int colsSub = int(kernel.cols / 2);
            for (int i = 0; i < src.rows; i++) {
                for (int j = 0; j < src.cols; j++)
                {
                    if (i < rowsSub || i >= src.rows - rowsSub || j < colsSub || j >= src.cols - colsSub) {
                        dst.at<uchar>(i, j) = src.at<uchar>(i, j);
                    }
                    else {
                        if (abs(src.at<uchar>(i, j)-m) < thre)
                            dst.at<uchar>(i, j) = src.at<uchar>(i, j);
                        else {
                            float sum = 0;
                            for (int ki = 0; ki < kernel.rows; ki++)
                            {
                                for (int kj = 0; kj < kernel.cols; kj++)
                                {
                                    int i_ = i + ki - rowsSub;
                                    int j_ = j + kj - colsSub;
                                    sum += src.at<uchar>(i_, j_)*kernel.at<float>(ki, kj);
                                }
                            }
                            dst.at<uchar>(i, j) = int(sum);
                        }
                    }
                }
            }
     
        }
        return dst;
    }

    当输入n=5,thre=50时,运行结果:

    11.png

     

    参考文献

    [1] CSDN博客:yeler082. 图像处理技术上的空间域和空间频率域.

    https://blog.csdn.net/yeler082/article/details/78374818. 2017-10-28

    [2] CSDN博客:John9ML. 图像处理基本概念——卷积,滤波,平滑.

    https://blog.csdn.net/weixin_38570251/article/details/82054185. 2018-08-25.

    [3] 韩九强,杨磊.数字图像处理.西安交通大学出版社.2018-08

     

     

     

     

     

     

    展开全文
  • 数字图像处理第三章-----空间域滤波

    千次阅读 2022-04-01 16:21:53
    数字图像处理第三章-----灰度变换和空间域滤波

    目录

    一:区分卷积和相关

    二:滤波器的种类

    2.1 平滑空间滤波

    2.1.1 平滑的线性滤波器

    2.1.2 统计排序(非线性)滤波器

    2.2 锐化空间滤波

    2.2.1使用二阶微分锐化图像——拉普拉斯算子(线性)

    2.2.2非锐化掩蔽和高提升滤波

    2.2.3 使用一阶微分锐化(非线性)图像——梯度

    一:区分卷积和相关

            图像处理中常常需要用一个滤波器空间滤波操作。空间滤波操作有时候也被叫做卷积滤波,或者干脆叫卷积(离散的卷积,不是微积分里连续的卷积);滤波器也有很多名字:卷积模版、卷积核、掩模、窗口等。

            空间滤波也可以分为线性滤波和非线性滤波。非线性滤波常见的有中值滤波、最大值滤波等,相当于自定义一个函数,在数学上由于不满足线性变换因此叫做非线性滤波。

            线性滤波则通常是:将模版覆盖区域内的元素,以模版中对应位置元素为权值,进行累加。看起来挺简单的,但是要区分相关(cross-correlation)卷积(convolution)两种模式。

    我们最容易的理解是:

    相关:从左向右,从上到下,逐个元素乘积再求和

    卷积:将模板反转180度,然后执行相关操作。这和卷积神经网络说的不同。

            当然,如果模版是180°对称的那么卷积和相关是相同的。但是并不是所有的模版都对称。因此,在滑窗操作、计算图像梯度等场合,不要使用“卷积”,而要使用“滤波”或者“相关”。因为,我们通常讲的卷积,其实是相关,那就不要用卷积这个词以免引起混淆。

    二:滤波器的种类

    空间域滤波大体分为两类:平滑空间滤波、锐化空间滤波。

    2.1 平滑空间滤波

            对像素点领域的像素值施于某种算法,以其结果替代当前像素点对应的像素值。平滑空间滤波器常用于模糊处理和降低噪声。模糊处理常用于预处理任务中,比如在(大)目标提取之前去除图像中的一些琐碎的细节,以及连接直线或曲线的缝隙。通过线性和非线性滤波模糊处理,可以降低噪声。平滑的空间滤波器分为:平滑的线性滤波器和基于统计排序(非线性)滤波器。

    2.1.1 平滑的线性滤波器

    (1)算术均值滤波

            最简单的均值滤波器,计算公式如下:

    \hat{f}(x,y)=\frac{1}{mn}\sum_{(s,t)\epsilon S_x_y}^{}g(s,t)

             S_x_y表示的是中心点在(x,y)处,大小为m×n的矩形图像区域的一组坐标,\hat{f}表示均值处理之后点(x,y)处的像素值。g(s,t)表示这个区域里面的像素值。算术均值滤波其实就是计算区域的平均值,用平均值代替当前点(x,y)的像素值。

    (2)几何均值滤波

    \hat{f}(x,y)=[\prod_{(s,t)\epsilon S_x_y}^{}g(s,t)]^\frac{1}{mn}

             几何均值滤波其实就是计算区域内像素值的乘积的\frac{1}{mn}幂。几何均值滤波器实现的平滑相比于算术均值滤波器丢失的图像细节更少。

    (3)谐波均值滤波

            \hat{f}(x,y)=\frac{mn}{\sum_{(s,t)\epsilon S_x_y}^{}\frac{1}{g(s,t)}}

            谐波均值滤波是用mn除以区域内像素值取倒数的和,谐波均值滤波对于盐粒噪声效果比较好,但不适用于胡椒噪声,也利于处理高斯噪声,因为椒盐噪声对应黑白相间的亮暗点,椒对应黑(像素值比较小,黑色的像素值是0),盐对应白(像素值比较大,白色的像素值是255),如果是胡椒噪声,\frac{1}{g(s,t)}的值比较大,那么求和之后整体的值是比较小的,那么整个滤波之后的像素接近于0,无法识别。

    (4)逆谐波均值滤波

            \hat{f}(x,y)=\frac{\sum_{(s,t)\epsilon S_x_y}^{}g(s,t)^{Q+1}}{\sum_{(s,t)\epsilon S_x_y}^{}g(s,t)^{Q}}

            其中Q称为滤波器的阶数。这种滤波器适合减少或在实际中消除椒盐噪声的影响。当Q为正值时,该滤波器消除胡椒噪声,当Q值为负时,该滤波器消除盐粒噪声。但它不能同时消除两种噪声。当Q=0时,逆谐波滤均值波器简化为算术均值滤波器。当Q=-1时,转化为谐波均值滤波器。

    2.1.2 统计排序(非线性)滤波器

            统计排序滤波器时空间滤波器,空间滤波器的响应基于该滤波器周围的图像区域中的像素值排序,排序的结果决定滤波器的响应。

    (1)中值滤波

    \hat{f}(x,y)=media_{(s,t)\epsilon S_x_y}{g(s,t)}

    它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值,也就是将中心像素的值用所有像素值的中间值(不是平均值)替换。中值滤波通过选择中间值避免图像孤立噪声点的影响,对脉冲噪声、斑点噪声、椒盐噪声有良好的滤除作用,特别是在滤除噪声的同时,能够保护信号的边缘,使之不被模糊。这些优良特性是线性滤波方法所不具有的。

    (2)最大值和最小值滤波

    \hat{f}(x,y)=max_{(s,t)\epsilon S_x_y}{g(s,t)}

             对区域内像素点排序,选着最大值的像素值作为最终结果,因此最大值滤波器对于发现图像中的最亮点非常有用。同样因为胡椒噪声的值非常的低,所以最大值滤波器可以降低胡椒噪声。

    \hat{f}(x,y)=min_{(s,t)\epsilon S_x_y}{g(s,t)}

            对区域内像素点排序,选着最小值的像素值作为最终结果,因此最小值滤波器对于发现图像中的最暗点非常有用。同样因为盐粒噪声的值非常的低,所以最小值滤波器可以降低盐粒噪声。

    (3)中点滤波

    \hat{f}(x,y)=\frac{1}{2}[max_{(s,t)\epsilon S_x_y}{g(s,t)}+min_{(s,t)\epsilon S_x_y}{g(s,t)}]

     该滤波器计算包围在滤波器区域内像素最大值和最小值的中点。

    (4)修正的阿尔法均值滤波器

    \hat{f}(x,y)=\frac{1}{mn-d}\sum_{(s,t)\epsilon S_x_y}^{}g_r(s,t)

            修正的阿尔法均值滤波器类似于去掉最高分与去掉最低分评价一个选手水平的方法,即将滤波范围内的数据进行排序,从大到小的顺序去除d/2个数据,从小到大的顺序去除d/2个数据,将剩下的数据计算均值。这样的滤波器,很擅长去除椒盐噪声和其他类型噪声一起污染过的图片。如果d=mn-1,则修正的阿尔法均值滤波器转化为了中值滤波器了。当d=0,修正的阿尔法均值滤波器变为了算术均值滤波器了。

    2.2 锐化空间滤波

            锐化处理的主要目的是突出灰度的过渡部分,补偿图像的轮廓,增强图像的边缘及灰度跳变的部分,使图像变得清晰。图像锐化的用途多种多样,应用范围从电子印刷和医学成像到工业检测和军事系统的制导等。图像的模糊可以通过积分来实现(均值处理与积分类似)。而图像锐化,则需要微分来实现。图像的模糊主要通过积分来实现(均值与积分类似),而图像的锐化处理可由空间微分来实现。本文主要介绍3中方法:拉普拉斯算子(二阶微分)、非锐化掩蔽、一阶微分(包括罗伯特交叉梯度算子和Soble算子)

    下面的内容,我们将先讨论由数字微分来定义和实现锐化算子的方法
    一维函数f(x)的一阶微分基本定义是差值:

    \frac{\partial f}{\partial x}=f(x+1)-f(x)

     一维函数f(x)的二阶微分的定义为差分: 

    \frac{\mathrm{\partial}^2 f}{\mathrm{\partial} x^2}=f(x+1)+f(x-1)-2f(x)

    由于图像有x和y两个方向,因此图像信号属于二维离散信号。其在x,y两个方向的离散二阶微分公式如下: 

    \frac{\mathrm{\partial}^2 f}{\mathrm{\partial} x^2}=f(x,y-1)+f(x,y+1)+f(x-1,y)+f(x+1,y)-4f(x,y)

     一阶微分的性质:

    (1)在恒定的灰度区域,图像的微分值为0.(灰度值没有发生变换,自然微分为0)

    (2)在灰度台阶或斜坡起点处微分值不为0.(台阶是,灰度值的突变变化较大;斜坡则是灰度值变化较缓慢;灰度值发生了变化,微分值不为0)

    (3)沿着斜坡的微分值不为0

    二阶微分的性质:(是一阶微分的导数,和一阶微分相对应)

     (1)在恒定区域二阶微分值为0

    (2)在灰度台阶或斜坡的起点处微分值不为0;

    (3)沿着斜坡的微分值为0

    2.2.1使用二阶微分锐化图像——拉普拉斯算子(线性)

    首先,拉普拉斯算子是最简单的各向同性微分算子,它具有旋转不变性。一个二维图像函数的拉普拉斯变换是各向同性的二阶导数(由于二阶微分的性质可知:拉普拉斯算子的应用强调的是图像中灰度的突变,并不强调灰度级缓慢变化的区域),定义为:

    由于图像有xy两个方向,因此图像信号属于二维离散信号。其在x,y两个方向的离散二阶微分公式如下: 

    \frac{\mathrm{\partial}^2 f}{\mathrm{\partial}^2 x}=f(x,y-1)+f(x,y+1)+f(x-1,y)+f(x+1,y)-4f(x,y)

    另外,拉普拉斯算子还可以表示成模板的形式,以便更好编程需要。如下图所示:

     从左到右依次是:拉普拉斯算子模板,带对角项的扩展模板,负的拉普拉斯算子模板,负的带对角项的扩展模板。

    正拉普拉斯算子中,我们使用标准掩模,掩模的中心元素应为阴性,掩模的角元素应为零。正拉普拉斯算符用于取出图像中的向外边缘。在负拉普拉斯算符中,我们也有一个标准的掩码,其中的中心元素应该是正的。角落中的所有元素应为零,掩码中所有元素的其余部分应为-1。负拉普拉斯算符用于取出图像中的向内边缘

    因为正拉普拉斯模板具有上下左右四个90度的方向上结果相同,也就是说在90度方向上无方向性。而带对角的扩展目的是为了保证其在上下左右45度的方向上结果相同,也就是说在45度方向上无方向性。

    锐化处理可选择拉普拉斯算子对原图像进行处理,产生描述灰度突变的图像,再将拉普拉斯图像与原始图像叠加而产生锐化图像,即锐化图像=原图像+拉普拉斯图像。拉普拉斯锐化的基本方法可以由下式表示:

    2.2.2非锐化掩蔽和高提升滤波

    非锐化掩蔽的步骤:

    1.模糊图像

    2.从原始图像中减去模糊图像(产生的差值图像称为模板)

    3.将模板加到原图像上

     令\bar{f}(x,y)表示模糊图像,非锐化掩蔽的公式描述如下:

    g_{mask} (x,y) = f(x,y)-\bar{f}(x,y)   此处得到的时非锐化掩蔽的模板。

     然后,在原始图像上加上该模板的一个权重部分:

    g (x,y) =f(x,y)+k*g_{mask} (x,y)

     其中k>=0,当k=1时,就是我们定义的非锐化掩蔽。当k>1时,该处理称为高提升滤波。

    2.2.3 使用一阶微分锐化(非线性)图像——梯度

             图像的一阶微分是采用梯度的幅值来实现的,对于函数f(x,y),f在坐标(x,y)处的梯度定义为二维列向量:

            \nabla f \equiv grad(f) \equiv \begin{bmatrix} g_x \\ g_y \end{bmatrix} \equiv \begin{bmatrix} \frac{\partial{f}}{\partial{x}}\\ \frac{\partial{f}}{\partial{y}}\end{bmatrix}

     该向量具有重要的几何特性,即它指出了在位置(x,y)处f的最大变化率的方向。梯度是一个向量,分量分别为坐沿着坐标轴的偏导数

    向量\nabla f的幅值(长度)表示M(x,y),即:

    M(x,y)=mag(\nabla f)=\sqrt{​{g_x}^2 +{g_y}^2}

    实际操作中用绝对值来近似的平方和平方根操作更方便。

    (1)Robertes cross(罗伯特交叉)算子

    罗伯特在提出两个定义使用交叉差分:

    g_x=(Z_9-Z_5) 和 g_y=(Z_8-Z_6)

    这一点在是我们前面讨论的一阶微分: g_y=(Z_8-Z_5)g_x=(Z_6-Z_5),是采用交差的形式计算微分。则此时梯度图像为:

    M(x,y)=mag(\nabla f)=\sqrt{​{(Z_9-Z_5)}^2 +{(Z_8-Z_6)}^2}\approx |Z_9-Z_5|+|Z_8-Z_6|

    因此,罗伯特交叉算子对应的模板是:

    (2)Sobel算子 

     Sobel(索贝尔算子)算子是一个离散微分算子 (discrete differentiation operator)。 它结合了高斯平滑和微分求导,用来计算图像灰度函数的近似梯度

           M(x,y)\approx |(Z_7+2Z_8+Z_9)-(Z_1+2Z_2+Z_3)|+|(Z_3+2Z_6+Z_9)-(Z_1+2Z_4+Z_7)|

     因此,Sobel算子对应的模板是:

    展开全文
  • 数字图像空间域 频域

    千次阅读 2020-10-08 14:57:51
    空间域:在图像处理中,时域可以理解为 空间域 或者 图像空间,处理对象为图像像元; 频域:以 空间频率 为自变量描述图像的特征,可以将一幅图像像元值在空间上的变化分解为具有不同振幅、空间频率和相位的简振函数...
  • 空间域图像增强:针对图像自身,以对图像的像素直接处理为基础的方法; 点处理,模板处理; 频率域图像增强:以修改图像的傅里叶变换为基础的方法; 高、低通滤波,同态滤波。 另外还有彩色图像的增强。 1.空间域...
  • 图像空间域和频域的分析

    千次阅读 2022-03-03 11:46:51
    图像空间域和频域的分析 频率是灰度变化的快慢 f(x,y)表示一幅大小为mxn像素的数字图像 令f(x,y)表示一幅大小为MXN像素的数字图像,其中,x=0,1,2······M-1, y=0,1,2······N-1,由F(u,v)表示的f(x...
  • 图像处理 | 空间域与频率域滤波

    千次阅读 2020-11-15 08:53:00
    频率滤波(低通) 作用:平滑处理图像 1) 算法思路流程 频率滤波的一般处理方法是:先修改一幅图像的傅里叶变换,然后计算其反变换,得到处理后的结果。 高斯低通滤波函数已经给出,同时参数D0已知,我们只需求...
  • 基于python实现的机器视觉空间域图像增强 拉普拉斯变换 图像平滑等等
  • 一幅数字图像可以看成一个二维函数 f(x,y),而 x-y 平面表明了空间位置信息,称为空间域,基于 x-y 空间邻域的滤波操作叫做空间域滤波。如果对于邻域中的像素计算为线性运算,则又称为线性空间域滤波,否则称为非...
  • DOA估计, 波数,DOA 估计,阵列信号处理,经典算法
  • 文件给出了三种常见的空间域-彩色变换的编码,仅供参考!
  • 图像的滤波分为空间域和频率域两方面,在此首先说明空间域滤波。空间域滤波又分为高通滤波和低通滤波两种,下面分别阐述。 空间域平滑——低通滤波 低通滤波可以理解为降噪的过程,常用的方法有均值滤波、高斯滤波...
  • 关于空间域到频率域的转换

    千次阅读 2021-03-22 17:34:05
    这个“快慢”可以是相对于时间,或相对于空间,取决于问题所定义的度量空间。 追问 是不是 把像素值对应到平面直角坐标系中 拟合出波形图,像素位为横坐标,纵坐标为像素值?能否再具体解释一下啊 谢谢 追答 是啊,...
  • 基于频域分数阶子空间辨识的matlab数值仿真
  • halcon视觉缺陷检测之频域和空间域转换的方法详解

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 570,245
精华内容 228,098
关键字:

空间域

友情链接: STM32_CORE.zip