笔记1-1中,我和大家一起学习了一种基于空域变换的图像增强法,今天在1-2我将介绍一种基于频域滤波增强的方法——高通滤波法。

图像的频域滤波增强是利用图像变换方法将原来图像空间中的图像以某种形式转换到其他空间中,然后利用该空间特有性质再进行图像处理,最后转换回原来的图像空间中,从而得到处理后的图像。频域滤波增强的主要步骤如下:选择变换方法,将输入图像变换到频域空间;

在频域空间中,根据目标设计一个转移函数并进行处理;

将所得结果用反变换得到图像增强。

PS:在影像组学学习笔记2系列中我会对图像、图像处理的基本原理、滤波、空域、频域变换等这些基本概念做出详细的介绍。严正声明,本笔记只做个人学习用途,不用于任何商业、学术用途。NOW, 正片开始。

三 · 高通滤波法

图像在传递的过程中,噪声主要集中在高频部分,边缘及急剧变换的部分也都与高频分量有关,所以高通滤波可以对图像进行锐化处理。

图像的边缘、细节主要位于高频部分,而图像的模糊是由于高频成分比较弱产生的。我们可以设计高通滤波器

来抑制低频成分,通过高频部分,从而削弱低频分量,再进行傅里叶逆变换获得滤波图像以达到图像增强的目的。这样处理之后,消除了图像中的模糊部分,突出了边缘。常用的高通滤波器有以下几种:

3.1 理想高通滤波器

二维理想高通滤波器的传递函数为

特别尴尬我还不会用知乎编辑分段函数,抱歉抱歉。

式中,

是从频率域平面原点算起的截止频率(或距离),

图3-1 理想高通滤波器的传递函数示意图

我们继续用封面图来检验一下理想高通滤波器的效果,废话不多书,上图上代码。图3-2 用理想高通滤波器在频率域实现高频增强效果图

>> I=imread('10079.png'); %读取图像

>> figure

>> subplot(221);

>> imshow(I);

>> title('原图像');

>> s=fftshift(fft2(I)); %采用傅里叶逆变换并移位z

>> subplot(222);

>> imshow(log(abs(s)),[]);

>> title('傅里叶变换取对数所得频谱');

>> [a,b]=size(s);

>> a0=round(a/2);

>> b0=round(b/2);

>> d=10;

>> p=0.2;q=0.5;

>> for i=1:a

for j=1:b

distance=sqrt((i-a0)^2+(j-b0)^2);

if distance<=d h=0;

else h=1;

end;

s(i,j)=(p+q*h)*s(i,j);

end;

end;

>> s=uint8(real(ifft2(ifftshift(s))));

>> subplot(223);

>> imshow(s);

>> title('高斯滤波所得图像');

>> subplot(224);

>> imshow(s+I);

>> title('高频增强图像');

值得一提的是,理想高通滤波器可以用计算机模拟实现,但不可能用电子元器件来实现。

3.2 巴特沃斯高通滤波器

n阶巴特沃斯高通滤波器的传递函数为

图3-3 巴特沃斯高通滤波器传递函数图3-4 巴特沃斯滤波效果图

>> I=imread('10079.png');

>> [f1,f2]=freqspace(size(I),'meshgrid');

>> D=0.414; %截止频率

>> n=1;

>> Hd=ones(size(I));

>> r=sqrt(f1.^2+f2.^2);

>> for i=1:size(I,1)

for j=1:size(I,2)

t=r(i,j)/(D*D);

Hd(i,j)=t^n/(t^n+1); %构造滤波函数

end

end

>> B=fft2(double(I));

>> B=fftshift(B);

>> Ba=B.*Hd;

>> Ba=ifftshift(Ba);

>> Ia1=ifft2(Ba);

>> n=5;

>> Hd=ones(size(I));

>> r=sqrt(f1.^2+f2.^2);

>> for i=1:size(I,1)

for j=1:size(I,2)

t=r(i,j)/(D*D);

Hd(i,j)=t^n/(t^n+1); %构造滤波函数

end

end

>> B=fft2(double(I));

>> Ba=B.*Hd;

>> Ba=ifftshift(Ba);

>> Ia2=ifft2(Ba);

>> n=15;

>> Hd=ones(size(I));

>> r=sqrt(f1.^2+f2.^2);

>> for i=1:size(I,1)

for j=1:size(I,2)

t=r(i,j)/(D*D);

Hd(i,j)=t^n/(t^n+1); %构造滤波函数

end

end

>> B=fft2(double(I));

>> B=fftshift(B);

>> Ba=B.*Hd;

>> Ba=ifftshift(Ba);

>> Ia6=ifft2(Ba);

3.3 指数高通滤波器

指数高通滤波器的转移函数为

此处不做详细介绍了(其实是我也没有继续往下学)

本段为引用段群,刘小豫,吴粉侠等在2009年提出的提出的一种新型复合图像增强算法,杨文茵,徐丽新对此给出了补充介绍,本人仅作介绍与程序实现。

4.1 算法分析

算法主要分成以下三步:

(1) 将原始图像进行傅立叶频域变换,得到低 频和高频两个部分的分量。

(2) 经变换后,绝大部分能量都集中在低频部 分,而细节部分则体现在高频部分。为了达到既要增强对比度又要突出细节信息的目的,对低频系数 和高频系数同时加权处理。但是低频的加权系数一定要弱于高频的加权系数,这样可以保持低频不会丢失,而高频的边缘细节部分得到明显的增强。

(3)进行傅立叶反变换到空间域,再进行直方图均衡化处理,以提高亮度和对比度,改善图像的视觉效果。

4.2 实验结果及分析此处出于版权与保密考虑,代码不予给出,请谅解,有兴趣的同学可以根据我之前的笔记自行编写程序。

为了验证算法的有效性,本文依旧选取封面图像。图4-1 算法有效性验证图像

图 1(b)是二阶巴特沃兹高通滤波器滤波的 效果图,但是由于高通滤波器保持低频分量不变, 增强高频分量,所以图像整体亮度并没有改善,而 模糊地显示了图像的主要边缘;图 1(c)是高频强 调滤波器滤波的效果图,由于高频强调滤波器使得低频和高频分量同时增强,所以图像的亮度有所改善,边缘也模糊可见。但是图像的整体亮度和对比度还不是很高,导致图像视觉效果不好;图 1(d) 是高频强调滤波后执行直方图均衡化的结果图,可以明显看到图像的亮度和对比度有了很大的改善, 清楚地看到其他的细节。

4.3 结论

本文提出了一种基于高频强调滤波和直方图均衡化相 结合的图像增强方法。图像经频域变换后, 分解为高频部分和低频部分,高频强调滤波对这两个部分同时增强,但是增强的幅度不同,只要保证低频部分的增强弱于高频部分 的增强,就可以突出图像的边缘和细节信息。经高频强调 滤波后的图像灰度动态范围比较窄 ,再通过直方图均衡化 来自动扩展图像的灰度动态范围, 提高了图像的亮度和对比度。

实验分析表明: 该方法不仅可以突出图像的边缘和细节,而且可以增强图像的亮度和对比度, 最终使图像的清 晰度得到明显改善。但是对增强的效果, 目前还没有公认的定量指标来衡量,本文主要从主观效果上评判,如何确定合适的量化指标来评价还需要做进一步的探讨。

1-2完结,撒花!

参考

指数高通滤波器代码_影像组学学习笔记1-2——高通滤波法及应用相关推荐

  1. python画聚类树状图_影像组学学习笔记(36)-聚类树状图Dendrogram的python实现

    本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(36)主要介绍: 聚类树状图Dendrogram的python实现 应该注意一下scipy版本的问题:scipy 1.5.0版本画聚类树 ...

  2. 影像组学ibex_影像组学学习笔记

    题外话 这仍然是一篇学习笔记.近期在不同的学术会议上,有幸聆听学习了几位影像组学的大咖做报告,受益匪浅.以大咖们的报告为指导,自己也学习查找了一些文献,加入了一点点自己的理解和想法,整理成一篇笔记,与 ...

  3. 指数高通滤波器代码_分享matlab程序之——滤波器篇(高通,低通)

    快毕业了,把自己写的现成的matlab函数分享给有需要的人,由于个人水平有限,写的不好请见谅,愿意拍砖的尽管拍好了.目前还不考虑读博,所以写的程序仍了可惜,所以就拿出来分享.好了不废话了,开始正题. ...

  4. matlab将图片旋转的代码_从零开始的matlab学习笔记——(27)图像旋转与动态图...

    matlab应用--求极限,求导,求积分,解方程,函数绘图,三维图像,拟合函数....更多内容尽在个人专栏:matlab学习 昨天思考了一下,因为笔者的GUI只是刚刚入门,如果直接说的话也说不了多少东 ...

  5. python3 gui tk代码_【基础】学习笔记30-python3 tkinter GUI编程-实操12

    import tkinter as tk win = tk.Tk() menu = tk.Menu(win)  # 创建顶层菜单 filemenu = tk.Menu(menu, tearoff=0) ...

  6. 影像组学视频学习笔记(12)-支持向量机(SVM)参数优化(代码)、Li‘s have a solution and plan.

    本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(12)主要介绍: SVM参数优化(代码) 参数优化: 自动寻找最合适的γ和C组合. 原理:遍历所有给定的参数组合,对数据进行训练,找到最 ...

  7. 影像组学视频学习笔记(7)-特征筛选之LASSO回归(代码)、Li‘s have a solution and plan.

    本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(7)主要介绍: 特征筛选之LASSO回归分析(代码实现) import pandas as pd import numpy as np ...

  8. 影像组学视频学习笔记(43)-标准差、标准误及95%置信区间CI、Li‘s have a solution and plan.

    作者:北欧森林 链接:https://www.jianshu.com/p/f09d0f97592f 来源:简书,已获授权转载 本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(43)主要 ...

  9. 影像组学视频学习笔记(33)-使用SimpleITK实现医学影像差值、Li‘s have a solution and plan.

    作者:北欧森林 链接:https://www.jianshu.com/p/afcd06221ea4 来源:简书,已获转载授权 RadiomicsWorld.com "影像组学世界" ...

最新文章

  1. 【c语言】蓝桥杯算法训练 整除问题
  2. Java自动装箱/拆箱 - Java那些事儿
  3. bzoj 1864: [Zjoi2006]三色二叉树
  4. 登录框显示,错误:Cookies因预料之外的输出被阻止
  5. IDEA运行第一个Spring Boot应用程序
  6. dedecms怎么改php版本_Linux下如何安装DedeCMS?
  7. 计算机科学与技术专业实习招聘,中科院研究生院招聘GIS或计算机专业实习生
  8. 程序员的“黄金时代”,死去又重来?
  9. 【Python】单引号、双引号、三引号和字符串
  10. 第三方库pod错误:ld: library not found for -lXXX
  11. 【Fastboot】给android刷整个系统和系统某个单独模块的方法
  12. DecimalFormat的使用
  13. 使用 vue_VUE使用ECharts教程
  14. graphpad如何换柱状图与折线图能否混合一起_Graphpad Prism 绘制柱状图与散点图共存图...
  15. CF364D Ghd
  16. excel表格怎么拆分成多个表格?
  17. 罗切斯特大学排名计算机排名,2020年罗切斯特大学QS世界排名
  18. 毕设中常出现的定性检验与定量检验的方法及误差指标计算公式【自用】
  19. Python3.6下CMD命令安装ipython
  20. android应用的loading加载动画制作

热门文章

  1. 【愚公系列】2022年08月 微信小程序-icon图标详解
  2. 学习英文-学以致用【场景:菜市场】
  3. Go之time的时区
  4. java多线程之线程同步问题
  5. C++函数库的理解:写一个C++程序库(排序库)然后调用自己写的库(附带程序)
  6. 华为IPsec预共享密钥配置命令汇总
  7. C# Tcp 全双工通信 实现
  8. 四自由度机械臂matlab建模与仿真
  9. Java构造方法和子类构造方法
  10. 保持低调融合为上策!