精华内容
下载资源
问答
  • 数字图像处理lab6.zip matlib频域图像处理 计算并显示三幅图像的幅度谱:hstripes.bmp, vstripes.bmp,和dstripes.bmp. 解释每个图像与其幅度谱之间的关系。 计算通过对hstripes.bmp. 重建图像与原始图像的中误差是...
  • 本程序主要实现频域图像处理 程序包括:理想低通滤波器,巴特沃斯低通滤波器,高斯低通滤波器,理想高通滤波器,巴特沃斯高通滤波器,高斯高通滤波器以及同态滤波器 使用时候需要把main.m中imread括号中单引号里面的...
  • MATLAB--数字图像处理 频域图像分析

    千次阅读 2019-12-11 21:32:22
    频域图像分析 二、实验目的 1.熟悉MATLAB软件的使用。 2.掌握频域图像分析的原理及数学运算。 三、实验内容 1.自选一幅图像,并对其分别添加一定强度的周期噪声和高斯噪声,然后分别采用高斯模板、中值滤波的时域...

    一、实验名称

    频域图像分析

    二、实验目的

    1.熟悉MATLAB软件的使用。
    2.掌握频域图像分析的原理及数学运算。

    三、实验内容

    1.自选一幅图像,并对其分别添加一定强度的周期噪声和高斯噪声,然后分别采用高斯模板、中值滤波的时域方法以及傅里叶变换和小波变换的频率滤波方法对该含噪图像进行去噪处理,并基于PSNR值和视觉效果这两个指标来比较这四种滤波方法对两种不同噪声的去噪能力。
    2.编写一个程序,要求实现下列算法:首先将閣像分割为8x8的子图像,对每个予图像进行FFT.对每个了图像中的64个系数。按照每个系数的方差来排序后,舍去小的变換系數,只保留16个系数,实现4: I的图像压缩。
    3.给定一幅行和列都为2的整数次幕图像,用Haar小波基函数对其进行二维小波变换,试着将最低尺度近似分量置零再反变换,结果是什么?如果把垂直方向的细节分量置零,反变换后结果又是什么呢?试解释一下原因。
    4.基于小波变换对图像进行不同压缩比的压缩。在同压缩比情况下,对于基于小波变换和基于傅里叶变换的压缩结果,比较=二者保留原图像能里百分比情况。

    四、实验仪器与设备

    Win10 64位电脑
    MATLAB R2017a

    五、实验原理

    1.傅里叶变换
    从纯粹的数学意义上看,傅里叶变换是将一个函数转换为一系列周期函数来处理的。从物理效果看,傅里叶变换是将图像从空间域转换到频率域,其逆变换是将图像从频率域转换到空间域。换句话说,傅里叶变换的物理意义是将图像的灰度分布函数变换为图像的频率分布函数。
    傅里叶逆变换是将图像的频率分布函数变换为灰度分布函数傅里叶变换以前,图像(未压缩的位图)是由对在连续空间(现实空间)上的采样得到一系列点的集合,通常用一个二维矩阵表示空间上各点,记为z=f(x,y)。又因空间是三维的,图像是二维的,因此空间中物体在另一个维度上的关系就必须由梯度来表示,这样我们才能通过观察图像得知物体在三维空间中的对应关系。
    2.小波变换
    小波变换是时间(空间)频率的局部化分析,它通过伸缩平移运算对信号(函数)逐步进行多尺度细化,最终达到高频处时间细分,低频处频率细分,能自动适应时频信号分析的要求,从而可聚焦到信号的任意细节带噪声信号经过预处理,然后利用小波变换把信号分解到各尺度中,在每一尺度下把属于噪声的小波系数去掉,保留并增强属于信号的小波系数,最后再经过小波逆变换回复检测信号。
    小波变换在去除噪声时可提取并保存对视觉起主要作用的边缘信息,而传统的基于傅里叶变换去除噪声的方法在去除噪声和边沿保持上存在着矛盾,因为傅里叶变换方法在时域不能局部化,难以检测到局域突变信号,在去除噪声的同时,也损失了图像边沿信息。由此可知,与傅里叶变换去除噪声的方法相比较,小波变换法去除噪声具有明显的性能优势。
    3.PSNR算法
    peak的中文意思是顶点。而ratio的意思是比率或比列的。整个意思就是到达噪音比率的顶点信号,psnr一般是用于最大值信号和背景噪音之间的一个工程项目。通常在经过影像压缩之后,输出的影像都会在某种程度与原始影像不同。为了衡量经过处理后的影像品质,我们通常会参考PSNR值来衡量某个处理程序能否令人满意。它是原图像与被处理图像之间的均方误差相对于(2n-1)2的对数值(信号最大值的平方,n是每个采样值的比特数),它的单位是dB。

    六、实验过程及代码

    t=imread('a1.jpg');
    
    %添加高斯噪声
    t1=imnoise(t,'gaussian',0,0.02);
    [m,n]=size(t);
    t2=t;
    
    %添加周期噪声
    for i=1:m
    for j=1:n
    t2(i,j)=t(i,j)+30*sin(30*i)+30*sin(30*j);
    end
    end
    imshow(t1),title('加入高斯噪声后')
    figure,imshow(t2),title('加入周期噪声后');
    
    %进行高斯滤波、中值滤波
    t3_1=t;
    t3_1(:,:,1)=medfilt2(t1(:,:,1),[3 3]);
    t3_1(:,:,2)=medfilt2(t1(:,:,2),[3 3]);
    t3_1(:,:,3)=medfilt2(t1(:,:,3),[3 3]);
    figure,imshow(t3_1),title('对高斯噪声进行中值滤波','fontsize',16)
    h=fspecial('gaussian',5,3);%确定滤波方式为高斯滤波 5是模板大小  3是方差
    t3_2=imfilter(t2,h);%滤波操作
    figure,imshow(t3_2),title('对周期噪声进行高斯滤波','fontsize',16)
    
    t3_1=t;
    t3_1(:,:,1)=medfilt2(t2(:,:,1),[3 3]);
    t3_1(:,:,2)=medfilt2(t2(:,:,2),[3 3]);
    t3_1(:,:,3)=medfilt2(t2(:,:,3),[3 3]);
    figure,imshow(t3_1),title('对高斯噪声进行中值滤波','fontsize',16)
    h=fspecial('gaussian',5,3);%确定滤波方式为高斯滤波 5是模板大小  3是方差
    t3_2=imfilter(t1,h);%滤波操作
    figure,imshow(t3_2),title('对周期噪声进行高斯滤波','fontsize',16)
    
    
    %对周期噪声傅里叶变换滤波
    t_f=rgb2gray(t2); %将图像灰度化
    t_f=fft2(double(t_f));%利用fft2()函数将图像从时域空间转换到频域空间
    t_f=fftshift(t_f);%将零频平移到中心位置
    [m,n]=size(t_f);
    m_min=round(m/2);
    n_min=round(n/2);
    t_rf=t_f;
    d_0=100;%设置阈值
    for i=1:m
    for j=1:n
    d_1=sqrt((i-m_min)^2+(j-n_min)^2);
    if(d_1>d_0)
    x=0;
    else 
    x=1;
    end
    t_rf(i,j)=x*t_f(i,j);
    end
    end
    t_rf=ifftshift(t_rf);
    t_rf=uint8(real(ifft2(t_rf)));
    figure,imshow(t_rf),title('对周期噪声进行傅里叶变换滤波后')
    
    %对高斯噪声进行傅里叶变换滤波
    t_f=rgb2gray(t1);
    t_f=fft2(double(t_f));
    t_f=fftshift(t_f);
    [m,n]=size(t_f);
    m_min=round(m/2);
    n_min=round(n/2);
    t_rf=t_f;
    d_0=100;
    for i=1:m
    for j=1:n
    d_1=sqrt((i-m_min)^2+(j-n_min)^2);
    if(d_1>d_0)
    x=0;
    else 
    x=1;
    end
    t_rf(i,j)=x*t_f(i,j);
    end
    end
    t_rf=ifftshift(t_rf);
    t_rf=uint8(real(ifft2(t_rf)));
    figure,imshow(t_rf),title('对高斯噪声进行傅里叶变换滤波后')
    
    %对周期噪声进行小波变换滤波
    [c,s]=wavedec2(t2,2,'sym4');  
    a1=wrcoef2('a',c,s,'sym4');    
     figure,imshow(uint8(a1)); title('对周期噪声进行小波变换滤波')
    %对高斯噪声进行小波变换滤波
    [c,s]=wavedec2(t1,2,'sym4');  
    a1=wrcoef2('a',c,s,'sym4');    
    figure, imshow(uint8(a1)); title('对高斯噪声进行小波变换滤波')   
    

    SNRP算法

    function PSNR = psnr(f1, f2)
    %计算两幅图像的峰值信噪比
    k = 8;
    %k为图像是表示地个像素点所用的二进制位数,即位深。
    fmax = 2.^k - 1;
    a = fmax.^2;
    MSE =(double(im2uint8(f1)) -double( im2uint8(f2))).^2;
    b = mean(mean(MSE));
    PSNR = 10*log10(a/b);
    
    对图像进行4:1的压缩
     t=imread('a6.jpg');
    t=rgb2gray(t);%灰度化
    [k,p]=size(t);
    t=double(t)/255;%归一化 便于计算
    %显示原图
    imshow(t),title('原图','fontsize',16);
    %利用blkproc 进行分块 并对每一块进行fft操作
    t_fft=blkproc(t,[8 8],'fft2(x)');
    %利用im2col进行优化操作 便于计算
    t_block=im2col(t_fft,[8 8],'distinct');
    [t_change,ix]=sort(t_block);%对每一块图像进行排序
    [m,n]=size(t_block);
    nums=48;
    %对后48位系数清零
    for i=1:n
     t_block(ix(1:nums),i)=0;
    end
    t_rchange=col2im(t_block,[8 8],[k p],'distinct');
    t_ifft=blkproc(t_rchange,[8 8],'ifft2(x)');%对每一块进行傅里叶反变换
    figure,
    imshow(t_ifft),title('4:1压缩后','fontsize',16);
    

    haar基函数进行小波变换

    %实现一维Haar变换
    function [h]=D1Haar(f,N)
    J=log2(N);
    Y=zeros(J,N);
    f1=zeros(1,N);
    H=zeros(1,N);
    q=f';
    
    %调用倒序函数
    f1=Reverse(q,N);
    for A=1:N
        Y(1,A)=f1(A);
    end
    
    %第一层的迭代
    for C=1:N/2
        Y(2,C)=Y(1,C)+Y(1,C+N/2);
        Y(2,C+N/2)=Y(1,C)-Y(1,C+N/2);
    end
    
    %余下层的迭代
    M=0;
    for B=2:J
        K=2*N/(2^B); 
        F=zeros(1,K);
        for C=1:K/2
            Y(B+1,C)=Y(B,C)+Y(B,C+K/2);
            Y(B+1,C+K/2)=Y(B,C)-Y(B,C+K/2);
        end
        for C=K+1:2*K
            F(1,C-K)=Y(B,C);
        end
        Z=Reverse(F,K);
        for D=1:K
            Y(B+1,D+K)=Z(D);
        end
        for C=2*K+1:N
            Y(B+1,C)=Y(B,C);           
        end
    end
    
    %系数修正
    H(1,1)=(1/N)*Y(J+1,1);
    H(1,2)=(1/N)*Y(J+1,2);
    for a=2:J
        b=2^(a-1);
        c=b^(1/2);
            for d=b+1:2*b
            H(1,d)=(c/N)*Y(J+1,d);
        end
    end
    h=H';
    
    %二维哈尔函数的正变换
    function [y]=D2Haar(x,M,N)
    %先进行按列变换
    for i=1:N
        z=zeros(M,1);
        for c=1:M
           z(c,1)=x(c,i);
        end
        z1=D1Haar(z,M);%调用一维哈尔变换函数D1Haar
        for c=1:M
            x1(c,i)=z1(c,1);
        end
    end
    
    %再进行按行变换
    x2=x1';%将变换好的矩阵进行转置
    for j=1:M
        z=zeros(N,1);
        for c=1:N
            z(c,1)=x2(c,j);
        end
        z1=D1Haar(z,N);%调用一维哈尔变换函数D1Haar
        for c=1:N
            y1(c,j)=z1(c,1);
        end
    end
    y=y1';%再最后将变换好的矩阵作转置
    
    
         %对矩阵作一次哈尔变换
    function [y]=D2Har(x,M,N)
    for i=1:N
        z=zeros(M,1);
        for c=1:M
           z(c,1)=x(c,i);
        end
        z1=D1Haar(z,M);
        for c=1:M
            x1(c,i)=z1(c,1);
        end
    end
    y=x1;
    
    %哈尔函数的逆变换
    function [y]=ID2Haar(X,M,N)
    har1=zeros(M);
    I1=eye(M);%产生M维单位阵
    har1=D2Har(I1,M,M);%调用D2Har产生M维哈尔矩阵
    har2=M*har1';
    I2=eye(N);%产生N维单位阵
    har3=zeros(N);
    har3=D2Har(I2,N,N);%调用D2Har产生M维哈尔矩阵
    har4=N*har3;
    y=har2*X*har4;%哈尔逆变换
    
    %求倒叙函数
    function [F]=Reverse(F,M)
    N=log10(M)/log10(2);
    Y=zeros(1,M);
    for  x=0:M-1
         A=dec2bin(x,N);%十进制转二进制
         B=fliplr(A);%二进制倒叙
         C=bin2dec(B);%二进制转十进制
         Y(x+1)=F(C+1);
    end
    for x=0:M-1
         F(x+1)=Y(x+1);
    end  
    
        %对图片进行哈尔正变化,并对其进行恢复
    clear;
    M=256;
    N=256;
    
    %读取图象
    X=imread('C:\Users\LiCongliang\Desktop\数字图像处理\数字图像处理第七次作业\tea.jpg');
    subplot(2,2,1);
    imshow(X);
    title('原图像');
    
    %缩放原图象
    x=imresize(X,[M,N]);%将原图象缩放成分辨率为256*256的图象
    subplot(2,2,2);
    imshow(x);
    title('缩放图象');
    
    %对缩放图象进行Haar变换
    y=D2Haar(x,M,N);
    subplot(2,2,3);
    imshow(y);
    title('变换图象');
    
    %对变换后的图象进行Harr逆变换,恢复原图象
    z=ID2Haar(y,M,N);
    %Z=imresize(z,[480,360]);
    subplot(2,2,4);
    imshow(z,[0,255]);
    title('恢复图象');
    
    小波变换进行图像压缩
    X=imread('a5.jpg');
    X=rgb2gray(X);
    subplot(221); imshow(X);
    title('原始图像');
    %对图像用小波进行层小波分解
    [c,s]=wavedec2(X,2,'haar');
    %提取小波分解结构中的一层的低频系数和高频系数
    cal=appcoef2(c,s,'haar',1);
    ch1=detcoef2('h',c,s,1);      %水平方向
    cv1=detcoef2('v',c,s,1);      %垂直方向
    cd1=detcoef2('d',c,s,1);      %斜线方向
    %各频率成份重构
    a1=wrcoef2('a',c,s,'haar',1);
    h1=wrcoef2('h',c,s,'haar',1);
    v1=wrcoef2('v',c,s,'haar',1);
    d1=wrcoef2('d',c,s,'haar',1);
    c1=[a1,h1;v1,d1];
    subplot(222),imshow(c1,[]);
    title ('分解后低频和高频信息');
    %进行图像压缩
    %保留小波分解第一层低频信息
    %首先对第一层信息进行量化编码
    ca1=appcoef2(c,s,'haar',1);
    ca1=wcodemat(ca1,440,'mat',0);
    %改变图像高度并显示
    ca1=0.5*ca1;
    subplot(223);imshow(cal,[]);
    title('第一次压缩图像');
    %保留小波分解第二层低频信息进行压缩
    ca2=appcoef2(c,s,'haar',2);
    %首先对第二层信息进行量化编码
    ca2=wcodemat(ca2,440,'mat',0);
    %改变图像高度并显示
    ca2=0.25*ca2;
    subplot(224);imshow(ca2,[]);
    title('第二次压缩图像');    
    

    七、实验结果与分析

    图 1原图
    在这里插入图片描述
    1.加入周期噪声、高斯噪声
    在这里插入图片描述
    在这里插入图片描述
    2.对添加了高斯噪声和周期噪声的图像进行高斯滤波
    在这里插入图片描述
    在这里插入图片描述
    PSNR值
    1.对高斯噪声进行高斯滤波后 23.0287
    2.对周期噪声进行高斯滤波后 23.4837

    2.中值滤波
    在这里插入图片描述
    在这里插入图片描述
    PSNR值:
    1.对高斯噪声进行中值滤波 23.9931
    2.对周期噪声进行中值滤波 24.3134

    3.傅里叶变换滤波
    在这里插入图片描述
    在这里插入图片描述
    PSNR值:
    1.对添加了高斯噪声的图像进行傅里叶变换滤波 20.4922
    2.对添加了周期噪声的图像进行傅里叶变换滤波 18.9736

    4.小波变换滤波
    在这里插入图片描述
    在这里插入图片描述
    PSNR值:
    1.对添加了高斯噪声的图像进行小波变换滤波 23.4712
    2.对添加了周期噪声的图像进行小波变换滤波 24.4525

    分析:
    对于高斯噪声,高斯滤波和傅里叶变换滤波声的除噪效果较好,中值滤波效果较差,小波变换滤波的处理效果也比较好
    对于周期噪声,中值滤波和高斯滤波效果不是很好,傅里叶变换变换滤波对噪声的去处效果比较好,对于原图像损坏不大,小波变换对原图的损坏较大,但是图片可以看出噪声也去除的比较好。

    5.图像压缩(4:1压缩) 原图-左 压缩后-右
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
    分析:
    图像压缩算法就是先将一副图像分成很多小块,然后分别对这些小块进行变换,这里采用的是傅里叶变换,然后过滤掉冗余的像素点,然后再利用反变换得到压缩后的图像即可。
    小波变换
    1.定义
    小波变换是时间(空间)频率的局部化分析,它通过伸缩平移运算对信号(函数)逐步进行多尺度细化,最终达到高频处时间细分,低频处频率细分,能自动适应时频信号分析的要求,从而可聚焦到信号的任意细节带噪声信号经过预处理,然后利用小波变换把信号分解到各尺度中,在每一尺度下把属于噪声的小波系数去掉,保留并增强属于信号的小波系数,最后再经过小波逆变换回复检测信号。
    2.优点
    小波变换在去除噪声时可提取并保存对视觉起主要作用的边缘信息,而传统的基于傅里叶变换去除噪声的方法在去除噪声和边沿保持上存在着矛盾,因为傅里叶变换方法在时域不能局部化,难以检测到局域突变信号,在去除噪声的同时,也损失了图像边沿信息。由此可知,与傅里叶变换去除噪声的方法相比较,小波变换法去除噪声具有明显的性能优势。
    Haar基函数进行小波变换
    图 2原图
    在这里插入图片描述
    图 3 haar变换
    在这里插入图片描述
    图 4 haar反变换后
    在这里插入图片描述
    图 5 最低分量近似置零

    在这里插入图片描述

    图 6 垂直分量置零
    在这里插入图片描述
    小波变换进行图像压缩与傅里叶变换压缩对比

    1.压缩比 1:2(左-小波压缩 右-傅里叶压缩)

    在这里插入图片描述在这里插入图片描述

    2.压缩比 1:4(左-小波压缩 右-傅里叶压缩)

    在这里插入图片描述在这里插入图片描述

    八、实验总结及心得体会

    通过这次实验,学到了很多。特别是在傅里叶变换和小波变换等方面,开始的时候连傅里叶变换的基础基础也不懂,后来在csdn上看了一篇讲解傅里叶变换的文章,豁然开朗,傅里叶变换居然可以将一个时域信号转化到频域,而且自己还对与i有了更加深刻的理解。虽然傅里叶变换可以把信号从时域转换到频域,但是频域与时域的对应关系却无法一一对应,所以诞生了小波变换。小波变换的特别之处就是可以把一个时域上的信息转换为时域-频域一一对应,这对应特殊信号的提取是有很好的效果,在一定程度上比傅里叶变换更厉害。但是在傅里叶、小波等基础概念知识方面,自己还是涉猎的比较少,原理的论证公式太复杂了。

    更多

    获取更多资料、代码,微信公众号:海轰Pro
    回复 海轰 即可

    展开全文
  • 数字图像处理频域图像增强 by方阳 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7069942.html 1. 前言 这篇博客主要讲解频域滤波增强的各类滤波器的实现,并分析...

    数字图像处理之频域图像增强

                                                            by方阳

    版权声明:本文为博主原创文章,转载请指明转载地址

    http://www.cnblogs.com/fydeblog/p/7069942.html 

    1. 前言

     

    这篇博客主要讲解频域滤波增强的各类滤波器的实现,并分析不同的滤波器截止频率对频域滤波增强效果的影响。理论的知识还请看书和百度,这里不再复述!

     

    2. 原理说明

     

    (1)  图像的增强可以通过频域滤波来实现,频域低通滤波器滤除高频噪声,频域高通滤波器滤除低频噪声。

     

    (2)  相同类型的滤波器的截止频率不同,对图像的滤除效果也会不同。

     

    3. 实现内容

     

    (1)     选择任意一副图像,对其进行傅里叶变换,在频率域中实现二阶butterworth低通滤波器的平滑作用,截止频率任意设定。显示原始图像和滤波图像。

    (2)     选择任意一副图像,对其进行傅里叶变换,在频率域中实现两种不同半径(截止频率)的高斯高通滤波的锐化效果,显示原始图像和滤波图像,及与原图像叠加的高频增强图像。

     

    4. 程序实现及实验结果

     

    (1)butterworth滤波器

    参考代码:

    I=imread('fig620.jpg');
    f=D3_To_D2(I);
    PQ=paddedsize(size(f));
    [U,V]=dftuv(PQ(1),PQ(2));
    D0=0.05*PQ(2);
    F=fft2(f,PQ(1),PQ(2));
    H=1./(1+((U.^2+V.^2)/(D0^2)).^2);
    g=dftfilt(f,H);
    figure;
    subplot(1,3,1);
    imshow(f);
    title('原图');
    subplot(1,3,2);
    imshow(fftshift(H),[]);
    title('滤波器频谱');
    subplot(1,3,3);
    imshow(g,[]);
    title('滤波后的图像');
    

     

     D3_To_D2函数参考代码:

     

    function image_out=D3_To_D2(image_in)
    [m,n]=size(image_in);
     n=n/3;%由于我的灰度图像是185x194x3的,所以除了3,你们如果是PxQ的,就不要加了
     A=zeros(m,n);%构造矩阵
     for i=1:m
         for j=1:n
            A(i,j)= image_in(i,j);%填充图像到A
         end
     end
    image_out=uint8(A);
    

     

    paddedsize函数参考代码:

     

    function PQ = paddedsize(AB,CD,~ )  
    %PADDEDSIZE Computes padded sizes useful for FFT-based filtering.  
    %   Detailed explanation goes here  
    if nargin == 1  
        PQ = 2*AB;  
    elseif nargin ==2 && ~ischar(CD)  
        PQ = QB +CD -1;  
        PQ = 2*ceil(PQ/2);  
    elseif nargin == 2  
        m = max(AB);%maximum dimension  
          
        %Find power-of-2 at least twice m.  
        P = 2^nextpow(2*m);  
        PQ = [P,P];  
    elseif nargin == 3  
        m = max([AB CD]);%maximum dimension  
        P = 2^nextpow(2*m);  
        PQ = [P,P];  
    else   
        error('Wrong number of inputs');  
      
    end  
    

     

    dftuv函数参考代码:

     

    function [ U,V ] = dftuv( M, N )  
    %DFTUV 实现频域滤波器的网格函数  
    %   Detailed explanation goes here  
    u = 0:(M - 1);  
    v = 0:(N - 1);  
    idx = find(u > M/2); %找大于M/2的数据  
    u(idx) = u(idx) - M; %将大于M/2的数据减去M  
    idy = find(v > N/2);  
    v(idy) = v(idy) - N;  
    [V, U] = meshgrid(v, u);        
      
    end  
    

     

    运行结果

     

    (2)高通滤波器

    参考代码:

    I1=imread('lena.bmp');
    f1=D3_To_D2(I1);
    PQ1=paddedsize(size(f1));
    D0_1=0.05*PQ(1);
    D0_2=0.1*PQ(1);
    H1=hpfilter('gaussian',PQ1(1),PQ1(2),D0_1);
    H2=hpfilter('gaussian',PQ1(1),PQ1(2),D0_2);
    g1=dftfilt(f1,H1);
    g2=dftfilt(f1,H2);
    H1=0.5+2*H1;
    H2=0.5+2*H2;
    g3=dftfilt(f1,H1);
    g4=dftfilt(f1,H2);
    g3=histeq(gscale(g3),256);
    g4=histeq(gscale(g4),256);
    figure;
    subplot(2,3,1);
    imshow(f1);
    title('原图');
    subplot(2,3,2);
    imshow(g1,[]);
    title('滤波后的图像-系数0.05');
    subplot(2,3,3);
    imshow(g2,[]);
    title('滤波后的图像-系数0.1');
    subplot(2,3,4);
    imshow(g3,[]);
    title('增强后的图像-系数0.05');
    subplot(2,3,5);
    imshow(g4,[]);
    title('增强后的图像-系数0.1');
    

     

    hpfilter函数参考代码:

     

    function H = hpfilter(type, M, N, D0, n)
    if nargin == 4
        n = 1;
    end
    hlp = lpfilter(type, M, N, D0, n);
    H = 1 - hlp;
    

     

    hpfilter中的lpfilter参考代码:

     

    function [ H, D ] = lpfilter( type,M,N,D0,n )  
    %LPFILTER creates the transfer function of a lowpass filter.  
    %   Detailed explanation goes here  
      
    %use function dftuv to set up the meshgrid arrays needed for computing   
    %the required distances.  
    [U, V] = dftuv(M,N);  
       
    %compute the distances D(U,V)  
    D = sqrt(U.^2 + V.^2);  
      
    %begin filter computations  
    switch type  
        case 'ideal'  
            H = double(D <= D0);  
        case 'btw'  
            if nargin == 4  
                n = 1;  
            end  
            H = 1./(1+(D./D0).^(2*n));  
        case 'gaussian'  
            H = exp(-(D.^2)./(2*(D0^2)));  
        otherwise   
            error('Unkown filter type');  
      
    end  
    

     

    gscale函数参考代码:

     

    function g = gscale(f, varargin)
    %GSCALE Scales the intensity of the input image.
    %   G = GSCALE(F, 'full8') scales the intensities of F to the full
    %   8-bit intensity range [0, 255].  This is the default if there is
    %   only one input argument.
    %
    %   G = GSCALE(F, 'full16') scales the intensities of F to the full
    %   16-bit intensity range [0, 65535].
    %
    %   G = GSCALE(F, 'minmax', LOW, HIGH) scales the intensities of F to
    %   the range [LOW, HIGH]. These values must be provided, and they
    %   must be in the range [0, 1], independently of the class of the
    %   input. GSCALE performs any necessary scaling. If the input is of
    %   class double, and its values are not in the range [0, 1], then
    %   GSCALE scales it to this range before processing.
    %
    %   The class of the output is the same as the class of the input.
     
    %   Copyright 2002-2004 R. C. Gonzalez, R. E. Woods, & S. L. Eddins
    %   Digital Image Processing Using MATLAB, Prentice-Hall, 2004
    %   $Revision: 1.5 $  $Date: 2003/11/21 14:36:09 $
     
    if length(varargin) == 0 % If only one argument it must be f.
       method = 'full8';
    else
       method = varargin{1};
    end
     
    if strcmp(class(f), 'double') & (max(f(:)) > 1 | min(f(:)) < 0)
       f = mat2gray(f);
    end
     
    % Perform the specified scaling.
    switch method
    case 'full8'
       g = im2uint8(mat2gray(double(f)));
    case 'full16'
       g = im2uint16(mat2gray(double(f)));
    case 'minmax'
       low = varargin{2}; high = varargin{3};
       if low > 1 | low < 0 | high > 1 | high < 0
          error('Parameters low and high must be in the range [0, 1].')
       end
       if strcmp(class(f), 'double')
          low_in = min(f(:));
          high_in = max(f(:));
       elseif strcmp(class(f), 'uint8')
          low_in = double(min(f(:)))./255;
          high_in = double(max(f(:)))./255;
       elseif strcmp(class(f), 'uint16')
          low_in = double(min(f(:)))./65535;
          high_in = double(max(f(:)))./65535;   
       end
       % imadjust automatically matches the class of the input.
       g = imadjust(f, [low_in high_in], [low high]);  
    otherwise
       error('Unknown method.')
    end
    

     

    运行结果:

    五.结果分析

    (1)由第一个图可以看出,图像经过低通滤波器,图像的高频分量滤掉了,图像变得平滑。

    (2)由第二个图可以看出,图像不同的截止频率,出来的图像也不同,系数小的效果强。

     

     

     

     

    转载于:https://www.cnblogs.com/fydeblog/p/7069942.html

    展开全文
  • 数字图像处理频域处理课件,欢迎下载。
  • 图像处理频域滤波

    2017-05-28 18:55:38
    数字图像处理频域滤波ppt讲义,内容详尽,最后有仿真图
  • 图像处理学习三(频域图像增强)

    千次阅读 2017-11-21 14:29:31
    频域图像增强 图像变换技术:将原定义在图像空间的图像以某种形式转换到另外一些空间,并利用在这些空间的特有性质方便地进行一定的加工,最后再转换回图像空间以得到所需的效果。 变换是双向的,或者说需要双向的...

    频域图像增强

    基础知识:

    图像变换技术将原定义在图像空间的图像以某种形式转换到另外一些空间,并利用在这些空间的特有性质方便地进行一定的加工,最后再转换回图像空间以得到所需的效果。变换是双向的,或者说需要双向的变换。在图像处理中,一般将从图像空间向其他空间的变换称为正变换,而将从其他空间向图像空间的变换称为反变换或逆变换 。


    时域分析只能反映信号的幅值随时间的变化情况,除单频率分量的简谐波外,很难明确揭示信号的频率组成和各频率分量大小。信号频谱X(f)代表了信号在不同频率分量成分的大小,能够提供比时域信号波形更直观,丰富的信息。 


    傅里叶变换的理论基础就是:
    “任意波形都可以用单纯的正弦波的和来表示”。
    “任意波形可分解为不同幅值不同频率的正弦波的和。 ”


    频率:在单位时间内信号做周期变化的次数。

    信号的频谱:详细描述了信号所包含的频率分量。合成信号波形的每个正弦波,在频谱中显示为一个个尖峰。



    为什么要进行傅里叶变换:

    1822年,法国工程师傅里叶(Fourier)指出,一个“任意”的周期函数x(t)都可以分解为无穷多个不同频率正弦信号的和,这即是傅里叶级数。求解傅里叶级数的过程就是傅里叶变换。傅里叶级数和傅里叶变换又统称为傅里叶分析或谐波分析
    傅里叶分析方法相当于光谱分析中的三棱镜,而信号x(t)相当于一束白光,将x(t)“通过”傅里叶分析后可得到信号的频谱,频谱作傅里叶反变换后又可得到原信号x(t)

    信号的平稳变化源于它的低频分量,陡峭边缘和急剧变化则源于它的高频分量。例如方波,它既包含了产生平稳变化的低频分量,又包含了形成陡峭边缘的高频分量。只要所选择的正弦波具有合适的频率和振幅,把它们加在一起便产生了方波。

    傅里叶变换:实际上是将信号x(t)和一组不同频率的复正弦作内积,这一组复正弦即是变换的基向量,而傅里叶系数或傅里叶变换是x(t)在这一组基向量上的投影。 


    1-D正变换:


    1-D反变换:


    傅里叶变换的性质 :


















    展开全文
  • 数字图像处理(Digital Image Processing)是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。本专栏将以学习笔记形式对数字图像处理的重点基础知识进行总结整理,欢迎大家一起学习交流...

    数字图像处理(Digital Image Processing)是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。本专栏将以学习笔记形式对数字图像处理的重点基础知识进行总结整理,欢迎大家一起学习交流!
     专栏链接:数字图像处理学习笔记

    目录

    1 频率域平滑(低通)滤波器

    1.1 理想低通滤波器

    1.2 巴特沃思低通滤波器

    1.3 高斯低通滤波器    

    1.4 三种低通滤波器小结

    1.5 低通滤波器的应用实例:模糊,平滑等

    2 频率域锐化(高通)滤波器

    2.1 理想高通滤波器(IHPF)

    2.2 巴特沃思高通滤波器

    2.3 高斯(指数)高通滤波器

    2.4 三种高通滤波器小结

    2.5 频率域的拉普拉斯算子

    2.6 钝化模板、高频提升滤波和高频加强滤波


    1 频率域平滑(低通)滤波器

    图像的平滑除了在空间域中进行外,也可以在频率域中进行。

    由于噪声主要集中在高频部分,为去除噪声改善图像质量,滤波器采用低通滤波器H_{LP}(u,v)抑制高频成分,通过低频成分,然后再进行逆傅立叶变换获得滤波图像,就可达到平滑图像的目的。

    边缘噪声等尖锐变化处于傅里叶变换的高频部分

    平滑可以通过衰减高频成分的范围来实现
    常用的频率域平滑滤波器有3种:         

    • 理想低通滤波器 (处理变化尖锐部分)        
    • 巴特沃思低通滤波器  (处于理想和高斯滤波器之间)       
    • 高斯低通滤波器 (处理变化平滑部分

    1.1 理想低通滤波器

    高度概括:截断傅里叶变换中的所有处于指定距离D_{0} 之外的高频成分。
    简单而言:就是将以D_{0}为半径的圆以外的部分全部置0,远行以内的部分全部置1。

                       

    上述公式即为理想低通滤波器的公式描述。
    其中,H代表滤波器,I代表理想,LP代表低通,F代表滤波器。
    因为该公式是在频域中的,故用u,v表示;而x,y是空间域常用的表示形式。

    ★低通滤波器随着半径的增大保留的信息增多

     频率域的中心在(\frac{P}{2},\frac{Q}{2}) ,从点(u,v)到中心(原点)的距离如下

                       

    图像描述
                

    说明:在半径为D_{0}的圆内,所有频率没有衰减地通过滤波器,而在此半径的圆之外的所有频率完全被衰减掉。

    总图像功率值P_{T}
                     

    其中:
                    

    原点在频率域的中心,半径为D_{0}的圆包含\alpha \%的功率D_{0}
    其中
                      

    理想低通滤波器举例

    上图所示的是:
    圆环具有半径5,15,30,80和230个像素
    图像功率为92.0%,94.6%,96.4%,98.0%和99.5%

    此举例说明结论:
    ①90%以上的功率(能量)集中在半径小于5的圆周内;
    ②随滤波器半径的增加,越来越少的功率被滤出掉,使模糊减弱。

    理想低通滤波器具有振铃现象

    1.2 巴特沃思低通滤波器

    n阶巴特沃思低通滤波器(BLPF)定义如下
                             
                                       

    D_{0}为截至频率距原点的距离,D(u,v)是点(u,v)距原点的距离。
    当D(u,v)=D_{0}时,H(u,v)=0.5(最大值是1,当D(u,v)=0)

    它的特性是连续性衰减,而不像理想滤波器那样陡峭变化, 即明显的不连续性。
    因此采用该滤波器滤波在抑制噪声的同时,图像边缘的模糊程度大大减小,没有振铃效应产生

    图像描述

    可用于平滑处理,如图像由于量化不足产生虚假轮廓时,常可用低通滤波进行平滑以改进图像质量。
    通常,BLPF的平滑效果好于ILPF(振铃现象)。

    巴特沃思低通滤波器 n=2(n=2时效果最好

    所有的滤波器都有半径为5的截至频率D_{0}


    二阶BLPF处于有效低通滤波和可接受的振铃特征之间。

    1.3 高斯低通滤波器    

    二维高斯低通滤波器(GLPF)定义如下
                            
    当D(u,v)=D_{0}时,滤波器下降到它最大值的0.607处

    图像描述

    采用高斯低通滤波器滤波在抑制噪声的同时,图像边缘的模糊程度较用Butterworth滤波产生的大些,无明显的振铃效应。
    ★高斯滤波器无振铃现象

    1.4 三种低通滤波器小结

    GLPF不能达到有相同截止频率的二阶BLPF的平滑效果
    GLPF没有振铃
    如果需要严格控制低频和高频之间截至频率的过渡,选用BLPF,代价是可能产生振铃

    1.5 低通滤波器的应用实例:模糊,平滑等

    字符识别:通过模糊图像,桥接断裂字符的裂缝
                    

    印刷和出版业:从一幅尖锐的原始图像产生平滑、柔和的外观,如人脸,减少皮肤细纹的锐化程度和小斑点
                        

    处理卫星和航空图像:尽可能模糊细节,而保留大的可识别特征。低通滤波通过消除不重要的特征来简化感兴趣特征的分析

                            

     

    2 频率域锐化(高通)滤波器

    图像的边缘、细节主要位于高频部分,而图像的模糊是由于高频成分比较弱产生的。
    频率域锐化就是为了消除模糊,突出边缘。
    因此采用高通滤波器让高频成分通过,使低频成分削弱,再经逆傅立叶变换得到边缘锐化的图像

    频率域锐化滤波器主要有:

    • 理想高通滤波器
    • 巴特沃思高通滤波器
    • 高斯高通滤波器
    • 频率域的拉普拉斯算子
    • 钝化模板、高频提升滤波和高频加强滤波

    高通滤波器的频域表示:
                    

    巴特沃思滤波器为理想滤波器的尖锐化和高斯滤波器的完全光滑之间的一种过渡。

    高通滤波器的空间域表示:
                   

    2.1 理想高通滤波器(IHPF)

    截断傅里叶变换中所有处于指定距离D0之内的低频成分
                    
    频率域的中心在(\frac{P}{2},\frac{Q}{2}),从点(u,v)到中心(原点)的距离如下
                     

    理想高通滤波示例:
     

    2.2 巴特沃思高通滤波器

    n阶巴特沃思高通滤波器(BHPF)定义如下
                      
    推导
                     

    二阶巴特沃思高通滤波示例:

    2.3 高斯(指数)高通滤波器

    截频距原点为D0的高斯高通滤波器(GHPF)定义为
                         

    高斯高通滤波示例:
     

    2.4 三种高通滤波器小结

    三种滤波函数的选用类似于低通。
    理想高通有明显振铃现象,即图像的边缘有抖动现象;
    Butterworth高通滤波效果较好,但计算复杂,其优点是有少量低频通过, 是渐变的,振铃现象不明显;
    指数高通效果比Butterworth差些,振铃现象不明显;
    一般来说,不管在图像空间域还是频率域,采用高频滤波不但会使有用的信息增强,同时也使噪声增强。因此不能随意地使用

    2.5 频率域的拉普拉斯算子

    频率域的拉普拉斯算子定义
                  
                  
                  
                   

    原点从(0,0)移到(\frac{P}{2},\frac{Q}{2}),所以,滤波函数平移为
                  
    空间域拉普拉斯算子过滤后的图像可由计算的反傅里叶变换得到
                  
    傅里叶变换对表示空间域拉普拉斯算子和频率域的双向关系
                  
    从原始图像中减去拉普拉斯算子部分,形成g(x,y)的增强图像
                   

    2.6 钝化模板、高频提升滤波和高频加强滤波

    为什么要进行高频提升和高频加强?
    高频滤波后的图像,其背景平均强度减小到接近黑色(因为高通滤波器滤除了傅里叶变换的零频率成分:F(0,0)=0)

    解决办法:把原始图像加到过滤后的结果中,如拉普拉斯算子增强,这种处理称为高频提升过滤。它是钝化模板的推广。

    钝化模板(锐化或高通图像):
    从一幅图像减去其自身模糊图像从而生成锐化图像。
    在频率域,即从图像本身减去低通滤波(模糊)后的图像而得到高通滤波(锐化)的图像。
                   
    钝化模板和高频提升过滤:
                  

    当k=1,即钝化模板;当k>1,高提升滤波。

    更一般的高频提升加强:
               
    用图像的高频成分进行增强
    增加k1的目的是使零频率不被滤波器过滤
    当k2>1,高频得到加强


    欢迎留言,一起学习交流~~~

    感谢阅读

    END

    展开全文
  • 数字图像处理频域滤波器数字图像处理频域滤波器
  • 图像处理 频域增强

    2011-04-06 19:44:41
    图像处理 频域增强 上课专用课件, 内容详尽
  • 图像处理中,傅里叶变换一种有效而重要的方法,如:图像特征提取,频率域滤波,周期性噪声的去除,图像恢复等。可以将图像从空间域转换到频率域进行处理。 至于傅里叶变换的其他概念和具体实现细节,这里不多
  • 图像频域滤波处理

    万次阅读 2015-04-23 20:13:23
    编程实现图像频域滤波处理。 低通滤波处理,比较理想滤波器和实际滤波器的处理效果。 高通滤波处理,比较理想滤波器和实际滤波器的处理效果。
  • 上一期:医学图像处理——非线性空间滤波器 “之前我们做的处理中都是直接在f(x,y)坐标空间中所做的处理,今天我们就开始接触用傅里叶变换将图像转换到其频域来进行处理!” 二维离散傅里叶变换 由于傅里叶变换的...
  • 频域图像增强技术

    2015-05-29 21:13:51
    频域图像增强技术,采用傅里叶变换,使用零填充的方法的滤波效果和不使用零填充的滤波的效果。
  • 虽然写这个博客主要目的是为了给我...①频域是什么? ②为什么要在频率域研究图像增强? ③傅里叶变换的频率分量与图像空间特征之间的联系 ④频域的滤波步骤 ⑤一些基本的滤波器 1、陷波滤波器 2、低通滤波器 ...
  • 数字图像作业 matlab中在频域图像处理 包括了傅里叶变换 图像的相加减 滤波等
  • [简单图像处理实验] canny边界 /频域处理:频域图像增强和图像复原 /直方图处理 /测量相机参数
  • 二维离散傅立叶变换 快速傅立叶变换 二维离散傅立叶变换的应用 离散余弦变换 
  • 基于MATLAB的图像频域增强处理
  • 数字图像处理第三章 频域处理

    千次阅读 2020-06-08 19:35:58
    数字图像处理第三章 频域处理频域处理1 傅里叶变换 频域处理 这一章我们要学习的是图像的频域处理,那么到底什么是图像的频率域呢?如果我们把图像看做是一种特殊的二维的信号,那么某一点的灰度级就是这一点的...
  • Matlab图像频域处理

    千次阅读 2016-11-19 01:04:04
    (2)分别用高斯低通和高斯高通滤波器对图像进行频域处理。 (3)用频域拉普拉斯算子对此图像进行锐化处理。 二.结果 1.计算并画出此图像的中心化频率谱。     图1 图像中心化频率谱     2.分别用高斯低通和...
  • 数字图像处理频域滤波器
  • 数字图像处理及图像频域

    千次阅读 2017-10-21 09:09:46
    数字图像处理方法的重要性源于两个主要的应用领域:改善图示信息以便人们解释;为存储、传输和表示而对图像数据进行处理,以便于机器自动理解。 一幅数字图像可定义为一个二维函数f(x,y),其中x和y是空间(平面)...
  • 数字图像处理第三章——频域处理(上)

    千次阅读 多人点赞 2019-04-10 15:17:47
    数字图像处理第二章数字图像处理---频域处理(一)二维离散傅里叶变换4.1线性空间滤波4.1.1 相关4.1.2 卷积4.1.3 imfilter函数4.2 非线性空间滤波(五)图像处理工具箱中标准的空间滤波器5.1线性空间滤波器5.2非线性...
  • 第四章 频域图像增强

    2021-01-04 10:42:00
    第四章 频域图像增强数字图像处理一、 背景 Background二、 傅里叶变换和频率域的介绍2.1 一维傅立叶变换及其反变换总结 一、 背景 Background 法国数学家傅立叶(生于1768年)在1822年出版的《热分析理论》一书中...
  • 频域滤波基础: 用(-1)^(x + y)乘以输入图像来进行中心变换。 由(1)计算图像的DFT,即F(u,v) 用滤波器H(u,v)乘以F(u,v) 计算(3)中的反DFT 得到(4)中结果的实部 用(-1)^(x + y)...
  • 图像从空间域通过傅里叶变换等变换转换到频域,目的在于更好处理且计算速度快。 1.频域处理基础 通过狄里赫莱条件(有限个间断点、有限个极值点、绝对可积)定义傅里叶变换。 通过了解FT的性质对图像进行处理...
  • 图像处理】MATLAB:频域处理

    千次阅读 2017-10-07 20:24:06
    二维离散傅里叶变换、频域滤波、空间滤波和频域滤波的比较

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,636
精华内容 5,054
关键字:

频域图像处理