摘要:

现代医学非常发达,能通过各种手段来获取人体的各种信息,例如,X光可以拍摄人的骨头等图片。但是,这些图片效果不一定很好,所以在使用着大量的数字成像和数字图片处理设备。那么,现在,我用Matlab这个软件对一幅胸透图片进行处理,获得更好的效果。

本次软件处理实验方法是:利用高通滤波器削弱傅里叶变换的低频而保持高频相对不变点,这样会突出图像的边缘和细节,使得图像边缘更加清晰。但是由于高通滤波器偏离了直流分分量,从而把图像的平均值降低到了0,。一种补偿方法是给高通滤波器加上一个偏移量。若偏移量与滤波器乘以一个大于1的常数结合,则这种方法就称为高频强调滤波,因为该常量乘数突出了高频部分。这个乘数同时增加了低频部分的幅度,但是只要偏移量与被乘数比较小,低频增强的影响就弱于高频增强的影响。

一、数学分析

其中,a是偏移量,b是乘数,是高通滤波器的传递函数

该常量乘数突出了高频部分。这个乘数同时增加了低频部分的幅度,但是只要偏移量与被乘数比较小,低频增强的影响就弱于高频增强的影响。

二、Matlab代码编写

主函数代码:

%%%%%%

clc

clear

f=imread('Xray1.png');%%%读入图像

subplot(2,2,1);

imshow(f)

title('原始图像')

%%%对图像进行填充

PQ=paddedsize(size(f));

%%%高通滤波器

D0=0.05*PQ(1);

HBW=hpfilter('btw',PQ(1),PQ(2),D0,2);

gbw=dftfilt(f,HBW);

gbw=uint8(gbw);

subplot(2,2,2);

imshow(gbw)

title('巴特沃兹滤波后的图像')

%%%高通强调滤波

H=0.5+2*HBW;

ghf=dftfilt(f,H);

ghf=uint8(ghf);

subplot(2,2,3)

imshow(ghf)

title('强调高通滤波后的图像')

%%%对高频强调滤波后图像进行直方图均衡化

ghe=histeq(ghf,256);

ghe=uint8(ghe);

subplot(2,2,4);

imshow(ghe)

title('直方均衡化图像')

各函数代码:

1.PQ=paddedsize(AB,CD,PARAM)对图像进行补充,以便形成的方形大小等于最小接近的2的整数次幂。

functionPQ=paddedsize(AB,CD,PARAM)

ifnargin==1

PQ=2*AB;

elseifnargin==2&~ischar(CD)

PQ=AB+CD-1;

PQ=2*ceil(PQ/2);

elseifnargin==2

m=max(AB);

P=z^nextpower(2*m);

PQ=[P,P];

elseifnargin==3

m=max([AB,CD]);

P=2^nextpower(2*m);

PQ=[P,P];

else

error('Wrong number inputs.')

end

2.g=dftfilt(f,H)接受输入图像f和一个滤波器函数,可以处理所有滤波器细节并输出经过滤波和剪切后的图像g。

functiong=dftfilt(f,H)

H1=zeros(size(H,1),size(H,2),3);

H1(:,:,1)=H;

H1(:,:,2)=H;

H1(:,:,3)=H;

F=fft2(f,size(H,1),size(H,2));

g=real(ifft2(F.*H1));

g=g(1:size(f,1),1:size(f,2));

3.function[U,V]=dftuv(M,N)提供距离计算及其他应用所需的网格数。

function[U,V]=dftuv(M,N);

u=0:M-1;

v=0:N-1;

idx=find(u>M/2);

u(idx)=u(idx)-M;

idy=find(v>N/2);

v(idy)=v(idy)-N;

[V,U]=meshgrid(v,u);

4.function[H,D]=lpfilter(type,M,N,D0,n)实现低通滤波波。

function[H,D]=lpfilter(type,M,N,D0,n)

[U,V]=dftuv(M,N);

D=sqrt(U.^2+V.^2);

switchtype

case'ideal'

H=double(D<=D0);

case'btw'

ifnargin==4

n=1

end

H=1./(1+(D./D0).^(2*n));

case'gaussian'

H=exp(-(D.^2)./(2*(D0^2)));

otherwise

error('UNknown filter type.')

end

5.实现高通滤波。

functionH=hpfilter(type,M,N,D0,n)

ifnargin==4

n=1;

end

Hlp=lpfilter(type,M,N,D0,n);

H=1-Hlp;

三、运行结果

四、结果分析

图1显示了一幅胸部X光图像,图像略显模糊。所以我要对其进行处理。

图2显示的是使用二阶巴特沃兹高通滤波器对图1滤波的结果。滤波结果没有什么特色,模糊的显示了边缘,因为直流分量也被虑掉了。

图3对高通的结果进行补偿,增加了偏移量0.5,此时高低频分量都增加了,由于低频分量成分引起的灰度以及色调得意保持。

图4通过对高频强调滤波后图像进行直方均衡化得到结果图像。

当然,从实际效果来看,效果并不是非常好,毕竟数学方法用matlab处理效果并不好,本人用photoshop处理效果好很多

处理如下:

采用Matlab编程实现 高频强调滤波,[转载]MATLAB图像处理-基于高频强调滤波和直方均衡化图像增强...相关推荐

  1. 用matlab编程节点电压法求电路,MATLAB在电路中的应用

    <MATLAB在电路中的应用>由会员分享,可在线阅读,更多相关<MATLAB在电路中的应用(59页珍藏版)>请在人人文库网上搜索. 1.MATLAB应用(三) Matlab在电 ...

  2. matlab编程实现卷积定理,利用时域(空域)卷积定理进行图像滤波(Matlab 实现)(二)...

    引言 在 利用时域(空域)卷积定理进行图像滤波(Matlab 实现)(一)中我们知道了傅里叶变换是满足时域(空域)卷积定理的,在 从离散傅里叶变换到离散余弦变换 -- 公式证明 中我们也看到了离散余弦 ...

  3. matlab能倒入crv文件么,[转载]matlab GUI 编程——mcc转换m文件到应用程序

    1.安装C编译器(前提是你的电脑已经安装了VC) >> mbuild -setup Please choose your compiler for building standalone ...

  4. MATLAB保存数据为dat格式,[转载] Matlab中的数据以.txt或.dat格式保存

    具体命令是: 使用save * .txt -asciix x是一个变量 *. txt是文件名,该文件存储在当前工作目录中,然后在打开后可以将其打开,数据可以以指数形式保存. 看下面的例子: a = [ ...

  5. 用matlab编程实现h鲁棒控制算法,利用matlab实现H-infinity鲁棒控制

    利用matlab实现H-infinity鲁棒控制 利用Matlab实现H∞控制 Prof. Dr.-Ing.F.Allgwer Institute for Systems Theory and Aut ...

  6. matlab编程是用c语言吗,matlab调用c语言编程.doc

    实用标准文案 精彩文档 matlab与C语言混合编程 用C编写mex程序??大家都知道,matlab是一种解释型的编程环境,也就是说,跟以前的basic一样,是读一句执行一句的.这样做可以很方便的实现 ...

  7. matlab newff函数弃用了,[转载]MATLAB神经网络函数NEWFF()新旧用法差异

    摘要 在Matlab R2010a版中,如果要创建一个具有两个隐含层.且神经元数分别为5.3的前向BP网络,使用旧的语法可以这样写: net1 = newff(minmax(P), [5 3 1]); ...

  8. matlab公式加装上横线,[转载]Matlab与Latex(公式编辑)

    Matlab文本的Interpreter属性使我们能在图形中显示一个较为复杂的公式,例如在公式中除了有希腊字母外,还有分号.根号等数学符号. 当键入:>> set(text,'Interp ...

  9. matlab调用c语言驱动函数,[转载]Matlab调用C语言函数

    3.3000 要得出以上的结果,那应该怎样做呢? 解决方法之一是要通过使用MEX文件,MEX文件使得调用C函数和调用Matlab的内置函数一样方便.MEX文件是由原C代码加上MEX文件专用的接口函数后 ...

最新文章

  1. Java实现把一个对象复制给另一个有相同字段属性的对象
  2. GNU make manual 翻译(四十三)
  3. CentOS 7 搭建CA认证中心实现https取证
  4. java spliterator,Java 8 之Stream Spliterator
  5. Proxmox VE2.2虚拟化安装配置学习笔记(三)
  6. 【原创】打造基于Dapper的数据访问层
  7. 畅捷通服务器系统,畅捷通
  8. Ember之Computed Properties计算属性
  9. redis读取连接超时问题
  10. echarts绘制地图
  11. 基于OLAP的时间维度设计
  12. 回归中的相关度和决定系数及应用
  13. time(0) 是什么意思?
  14. 基于STM32单片机的远程智能浇花花盆GSM短信浇水补光方案原理图程序设计
  15. 12031,终结你!
  16. OpenCV特征检测出现Unhandled exception at……Access violation reading location 0x00000000.
  17. python常用re正则表达式大全,查找指定内容
  18. 硬解直显模式实现抓图功能(二)
  19. pd15不能连接oracle11g,PowerDesigner15 使用时的十五个问题附解决方法
  20. Ubuntu 20.04开启热点(连着wify开wify)

热门文章

  1. cad和python哪个好学_cad制图工资一般多少 就业前景好不好
  2. C++设计模式解析之单例模式解析
  3. Cookie,Session解决用户的会话跟踪问题
  4. 关于FD.io VPP的最新消息
  5. TCP流量控制和滑动窗口
  6. dev_t的主次编号
  7. /usr/include/sys/types.h基本系统数据类型
  8. java jsp网页计算器_JSP实现计算器功能(网页版)
  9. 无人机怎么设定航线_无人机工地巡逻方案
  10. Django主从数据库分离配置