【计算机视觉】图像分割与特征提取——频域增强(低通滤波&高通滤波)

【计算机视觉】图像分割与特征提取——频域增强(低通滤波&高通滤波)

个人简介:

📦个人主页:赵四司机
🏆学习方向:JAVA后端开发
⏰往期文章:SpringBoot项目整合微信支付
🔔博主推荐网站:牛客网 刷题|面试|找工作神器
📣种一棵树最好的时间是十年前,其次是现在!
💖喜欢的话麻烦点点关注喔,你们的支持是我的最大动力。

前言:

通过这篇文章你将了解卷积理论与频域的联系,并且你还将学会频域增强的两个常用方法——低通滤波和高通滤波。

目录

一:实验原理

二:低通滤波

三:高通滤波

四:代码实战

1.实验内容

2.Butterworth低通滤波器

3.Butterworth高通滤波器

4.实验分析

一:实验原理

卷积理论是频域技术的基础。设函数f(x,y)与线性位不变算子h(x,y)的卷积结果是g(x,y),即

g(x,y)=h(x,y)*f(x,y)     

那么,根据卷积定理在频域有

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

其中,G(u,v)、H(u,v)、F(u,v)分别是 g(x,y)、h(x,y)、f(x,y)的傅立叶变换。频域增强的主要步骤是:

  1. 计算所需增强图的傅立叶变换;
  2. 将其与一个(根据需要设计的)转移函数相乘;
  3. 在将结果进行傅立叶反变换以得到增强的图。

常用的频域增强方法有低通滤波和高通滤波。下面分别介绍这两种滤波方法。

二:低通滤波

图像的能量大部分集中在幅度谱的低频和中频部分,而图像的边缘和噪声对应于高频部分。因此能降低高频成分幅度的滤波器就能减弱噪声的影响。

Butterworth低通滤波器是一种物理上可以实现的低通滤波器。n阶截断频率为d0的Butterworth低通滤波器的转移函数为:

【计算机视觉】图像分割与特征提取——频域增强(低通滤波&高通滤波)
%  实现Butterworth低通滤波器

 I1=imread('lena.png');

 I2=imnoise(I1,'salt');

 f=double(I2);

 g=fft2(f);     %采用傅立叶变换

 g=fftshift(g); %数据矩阵平移

 [N1,N2]=size(g);

 n=2;

 d0=50;

 d1=5;

 n1=fix(N1/2);

 n2=fix(N2/2);

 for i=1:N1

     for j=1:N2

         d=sqrt((i-n1)^2+(j-n2)^2);

         %计算Butterworth低通变换函数

         h=1/(1+0.414*(d/d0)^(2*n));

         result(i,j)=h*g(i,j);

     end

 end

 result=ifftshift(result);

 X2=ifft2(result);

 X3=uint8(real(X2));

三:高通滤波

高通滤波也称高频滤波,它的频率值在0频率处为单位1,随着频率的增长,传递函数的值逐渐增加;当频率增加到一定值后,传递函数的值通常又回到0值或者降低到某个大于1的值。在前一种情况下,高频增强滤波器实际上是一种带通滤波器,只不过规定0频率处的增益为单位1。

在实际应用中,为了减少图像中面积大而且缓慢变化的成分的对比度,有时让0频率处的增益小于单位1更合适。如果传递函数通过原点,则可称为laplacian滤波器。

% 实现Butterworth高通滤波器参考代码

 %计算Butterworth高通变换函数

          if d==0

            h=0;

          else

            h=1/(1+(d1/d)^(2*n));

          end

            result(i,j)=h*g(i,j);

 result=ifftshift(result);

 X4=ifft2(result);

 X5=uint8(real(X2));

 figure(1),subplot(2,2,1),imshow(I1),title('原图像');

 subplot(2,2,2),imshow(I2),title('加噪图像');

subplot(2,2,3),imshow(X3),

title('Butterworth低通滤波器去噪图像');

 subplot(2,2,4),imshow(X5),

title('Butterworth高通滤波器去噪图像');

四:代码实战

1.实验内容

分别用两张以上不同的图片,实现Butterworth低通滤波器和Butterworth高通滤波器, 分别加入不同噪声如高斯噪声,椒盐噪声 (可选加入:指数分布噪声,泊松噪声,乘性噪声),分析Butterworth高通和低通的滤波效果。分析比较Butterworth低通滤波器和不同空域平滑滤波器的差别,结合实验结果对比图进行分析。

2.Butterworth低通滤波器

function I = Butterworth_low(I_in)
    f=double(I_in);
    g=fft2(f);     %采用傅立叶变换
    g=fftshift(g); %数据矩阵平移
    [N1,N2]=size(g);
    result=zeros(N1,N2);
    n=2;
    d0=50;
    n1=fix(N1/2);
    n2=fix(N2/2);
    for i=1:N1
        for j=1:N2
            d=sqrt((i-n1)^2+(j-n2)^2);
            %计算Butterworth低通变换函数
            h=1/(1+0.414*(d/d0)^(2*n));
            result(i,j)=h*g(i,j);
        end
    end
    result=ifftshift(result);
    X2=ifft2(result);
    I=uint8(real(X2));
end

%lena图片
X1_1=Butterworth_low(I1_1);
figure,subplot(131),imshow(I1),title('lena原图像');
subplot(132),imshow(I1_1),title('加入高斯噪声');
subplot(133),imshow(X1_1),title('Butterworth低通滤波');

【计算机视觉】图像分割与特征提取——频域增强(低通滤波&高通滤波)

图2.1-1 lena图像加入高斯噪声的低通滤波结果

X1_2=Butterworth_low(I1_2);

figure,subplot(131),imshow(I1),title('lena原图像');

subplot(132),imshow(I1_2),title('加入椒盐噪声');

subplot(133),imshow(X1_2),title('Butterworth低通滤波');

【计算机视觉】图像分割与特征提取——频域增强(低通滤波&高通滤波)

图2.1-2 lena图像加入椒盐噪声的低通滤波结果

X1_3=Butterworth_low(I1_3);

figure,subplot(131),imshow(I1),title('lena原图像');

subplot(132),imshow(I1_3),title('加入泊松噪声');

subplot(133),imshow(X1_3),title('Butterworth低通滤波');

【计算机视觉】图像分割与特征提取——频域增强(低通滤波&高通滤波)

图2.1-3 lena图像加入泊松噪声的低通滤波结果

%pout图片

X2_1=Butterworth_low(I2_1);

figure,subplot(131),imshow(I2),title('pout原图像');

subplot(132),imshow(I2_1),title('加入高斯噪声');

subplot(133),imshow(X2_1),title('Butterworth低通滤波');

【计算机视觉】图像分割与特征提取——频域增强(低通滤波&高通滤波)

图2.1-4 pout图像加入高斯噪声的低通滤波结果

X2_2=Butterworth_low(I2_2); 

figure,subplot(131),imshow(I2),title('pout原图像');

subplot(132),imshow(I2_2),title('加入椒盐噪声');

subplot(133),imshow(X2_2),title('Butterworth低通滤波');

【计算机视觉】图像分割与特征提取——频域增强(低通滤波&高通滤波)

图2.1-5 pout图像加入椒盐噪声的低通滤波结果

X2_3=Butterworth_low(I2_3);

figure,subplot(131),imshow(I2),title('pout原图像');

subplot(132),imshow(I2_3),title('加入泊松噪声');

subplot(133),imshow(X2_3),title('Butterworth低通滤波');

【计算机视觉】图像分割与特征提取——频域增强(低通滤波&高通滤波)

图2.1-6 pout图像加入泊松噪声的低通滤波结果

%自定义scenery图像

X3_1=Butterworth_low(I3_1);

figure,subplot(131),imshow(I3),title('scenery原图像');

subplot(132),imshow(I3_1),title('加入高斯噪声');

subplot(133),imshow(X3_1),title('Butterworth低通滤波');

【计算机视觉】图像分割与特征提取——频域增强(低通滤波&高通滤波)

图2.1-7 scenery图像加入高斯噪声的低通滤波结果

X3_2=Butterworth_low(I3_2);

figure,subplot(131),imshow(I3),title('scenery原图像');

subplot(132),imshow(I3_2),title('加入椒盐噪声');

subplot(133),imshow(X3_2),title('Butterworth低通滤波');

【计算机视觉】图像分割与特征提取——频域增强(低通滤波&高通滤波)

图2.1-8 scenery图像加入椒盐噪声的低通滤波结果

X3_3=Butterworth_low(I3_3);

figure,subplot(131),imshow(I3),title('scenery原图像');

subplot(132),imshow(I3_3),title('加入泊松噪声');

subplot(133),imshow(X3_3),title('Butterworth低通滤波');

【计算机视觉】图像分割与特征提取——频域增强(低通滤波&高通滤波)

图2.1-9 scenery图像加入泊松噪声的低通滤波结果

3.Butterworth高通滤波器

function I = Butterworth_high(I_in)

    f=double(I_in);

    g=fft2(f);     %采用傅立叶变换

    g=fftshift(g); %数据矩阵平移

    [N1,N2]=size(g);

    result=zeros(N1,N2);

    n=2;

    d1=5;

    n1=fix(N1/2);

    n2=fix(N2/2);

    for i=1:N1

        for j=1:N2

            d=sqrt((i-n1)^2+(j-n2)^2);

            %计算Butterworth低通变换函数

            if d==0

                h=0;

            else

                h=1/(1+(d1/d)^(2*n));

            end

            result(i,j)=h*g(i,j);

        end

    end

    result=ifftshift(result);

    X2=ifft2(result);

    I=uint8(real(X2));

end

【计算机视觉】图像分割与特征提取——频域增强(低通滤波&高通滤波)

图2.2-1 lena图像加入高斯噪声的高通滤波结果

【计算机视觉】图像分割与特征提取——频域增强(低通滤波&高通滤波)

图2.2-2 lena图像加入椒盐噪声的高通滤波结果

【计算机视觉】图像分割与特征提取——频域增强(低通滤波&高通滤波)

图2.2-3 lena图像加入泊松噪声的高通滤波结果

【计算机视觉】图像分割与特征提取——频域增强(低通滤波&高通滤波)

图2.2-4 pout图像加入高斯噪声的高通滤波结果

【计算机视觉】图像分割与特征提取——频域增强(低通滤波&高通滤波)

图2.2-5 pout图像加入椒盐噪声的高通滤波结果

【计算机视觉】图像分割与特征提取——频域增强(低通滤波&高通滤波)

图2.2-6 pout图像加入泊松噪声的高通滤波结果

【计算机视觉】图像分割与特征提取——频域增强(低通滤波&高通滤波)

图2.2-7 scenery图像加入高斯噪声的高通滤波结果

【计算机视觉】图像分割与特征提取——频域增强(低通滤波&高通滤波)

图2.2-8 scenery图像加入椒盐噪声的高通滤波结果

【计算机视觉】图像分割与特征提取——频域增强(低通滤波&高通滤波)

图2.2-9 scenery图像加入泊松噪声的高通滤波结果

注:为了便于调用,我将低通高通滤波封装成了函数的形式,然后再对不同的图片进行函数调用;为了节省篇幅,这里仅将主要代码放上来,且不再将Butterworth高通滤波的调用代码放上来。

4.实验分析

图像增强可以分为空间域、频率域和彩色增强,其包含的内容如下图所示:

【计算机视觉】图像分割与特征提取——频域增强(低通滤波&高通滤波)

低通高通滤波是在频率域上对图像的增强,而中值滤波、均值滤波等则是在空间域上对图像的增强。

一开始我的理解为对于二值图像,当某一像素点与中心点的距离大于D0时,该点的像素值就会被置0,因为根据理想低通滤波函数当D>D0时H=0,当D

Original: https://blog.csdn.net/weixin_45750572/article/details/127252033
Author: 赵四司机
Title: 【计算机视觉】图像分割与特征提取——频域增强(低通滤波&高通滤波)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/795770/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • python ——numpy库学习

    numpy重在数值计算,也是大部分Python科学计算库的基础库 创建数组 1. import numpy as np t1=np.array([1,2,3]) print(t1)…

    Python 2023年8月29日
    051
  • Win10终端输入conda,直接进入conda环境配置

    在Windows上出现”No module named ‘ conda‘”的错误通常是由于Ana conda 环境配置_问题引起的。…

    Python 2023年9月8日
    055
  • (二)元学习算法MAML简介及代码分析

    欢迎访问个人网络日志🌹🌹知行空间🌹🌹 元学习算法MAML简介 * – 1.元学习(meta learning) – 2.模型无关元学习 – + …

    Python 2023年9月15日
    053
  • 【计算商品总价~python+】

    目录~python 计算商品总价 * – 运行效果如下: pandas 每日一练: * – 程序运行结果如下: 92、计算第一列数字前一个与后一个的差值 &…

    Python 2023年8月2日
    077
  • UEC++ 接口

    词义广泛,用来陈述功能,选项,与其他程序结构进行沟通的方式。接口抽象出了交互结构,提供了两个未知逻辑交互的便捷性。对于编程中,如何更好的设计低耦合程序起到了至关重要的作用。设计者可…

    Python 2023年10月21日
    036
  • 利用Python自动操纵鼠标键盘刷金币,工作室都是靠这种搬砖

    Original: https://www.cnblogs.com/pythonQqun200160592/p/15494083.htmlAuthor: python可乐编程Tit…

    Python 2023年5月25日
    0113
  • MongoDB数据库的备份恢复

    MongoDB数据库的备份恢复 文章目录 MongoDB数据库的备份恢复 * 1.mongodb备份还原工具 2.mongoexport备份还原某个库的某张表 – 2….

    Python 2023年9月16日
    048
  • pandas应用之pivot函数

    1、pivot函数的定义 pivot(index=None,columns=None,values=None) -> DataFrame 2、pivot函数的说明 通过给定的…

    Python 2023年8月19日
    055
  • Python做游戏其实很简单,只是你觉得难…

    很多小伙伴都喜欢小游戏源码,想学一手Python做小游戏,问我做游戏难不难,要怎么做,接下来我就介绍一下,如何用Python做游戏。 游戏演示 2048小游戏 表白弹窗 贪吃蛇 五…

    Python 2023年11月1日
    040
  • conda-init错误解决

    conda init初始化,CMD显示错误信息(此时不应有 &。) 此时不应有 &。 [已退出进程,代码为 1 (0x00000001)] 在安装完miniCond…

    Python 2023年9月7日
    057
  • jupyter不是内部或外部命令,也不是可运行程序的解决方案

    我是在跟着李沐老师安装的时候发现了这问题 具体的解决办法如下: 如果确认已经安装了jupyter,那么这部分是因为 没有将可以找到jupyter的路径添加到系统变量中,具体的做法如…

    Python 2023年8月1日
    089
  • 基于Python班级管理系统毕业设计-附源码171809

    科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流,人类发展的历史正进入…

    Python 2023年7月31日
    061
  • pandas进行数据处理

    pandas读取多列 选择表格中的’w’、’z’列 data[[‘w’,’z’]] …

    Python 2023年8月18日
    090
  • 让你的Nginx支持分布式追踪opentracing

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Python 2023年6月3日
    064
  • Numpy知识详解之Numpy概述及基础知识

    Numpy知识详解(一) ​ Numpy是python中主要用于数据分析和数值计算的一个免费开源的底层的库,完全采用标准C语言实现,运行效率高。Numpy的核心是 多维数组,减少p…

    Python 2023年8月25日
    036
  • 比echarts还好用的数据可视化软件

    一.数据可视化 顾名思义,数据可视化就是将数据转换成图或表等,以一种更直观的方式展现和呈现数据,让读者能”一眼看懂”你想表达的信息。通过”可视化…

    Python 2023年8月9日
    076
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球