医学图像增强——基于同态滤波方法(Matlab代码实现)

       目录

1 概述

2 运行结果

3 参考文献

‍4 Matlab代码


1 概述

医学图像增强——基于同态滤波方法(Matlab代码实现)

目的:改善医学图像质量,使低对比度的图像得到增强。方法:利用Matlab,采用灰度直方图均衡化和灰度直方图规定化的方法对一幅X线图像进行增强处理,并比较它们的增强效果。结果:用直方图均衡化和规定化的算法,将原始图像密集的灰度分布变得比较稀疏,处理后的图像视觉效果得以改善。直方图均衡化对于局部细节增强不显著,而直方图规定化则使不易观察到的细节变得清晰。结论:使用Matlab大大简化了编程工作,为医学图像处理提供了一种技术平台。直方图规定化法处理医学图像局部细节方面好于均衡化。

2 运行结果

医学图像增强——基于同态滤波方法(Matlab代码实现)_第1张图片

医学图像增强——基于同态滤波方法(Matlab代码实现)_第2张图片

医学图像增强——基于同态滤波方法(Matlab代码实现)_第3张图片

医学图像增强——基于同态滤波方法(Matlab代码实现)_第4张图片

医学图像增强——基于同态滤波方法(Matlab代码实现)_第5张图片

医学图像增强——基于同态滤波方法(Matlab代码实现)_第6张图片

医学图像增强——基于同态滤波方法(Matlab代码实现)_第7张图片

主函数部分代码:

clear all;clc;% 原始图像库路径originImgPath = 'DRimgs/';% 参考结果图像路径referenceImgPath = 'RefImgs/';% 遍历所有jpg格式文件imgDir  = dir([originImgPath '*.tif']);% 遍历结构体就可以一一处理图片了% 选取本次运行要查看的图片数number=7;    % number=length(imgDir); % 查看全部图像for i = 1:number    % 提取每张图片文件名    name = imgDir(i).name((1:end-4));     originImg = imread([originImgPath name '.tif']);           %读取原始图片    referenceImg = imread([referenceImgPath name '_out.tif']); %读取参考结果图片        %显示原始图像    figure('name',name),subplot(1,3,1),imshow(originImg,[0 4096]);title('原始图片');    %显示参考图像    subplot(1,3,2),imshow(referenceImg,[0 4096]);title('参考结果图像');    %     方法一:使用同态滤波增强:homomorphicFilter(originImg,rL,rH,c,D0),会压缩图像%     resultImg=homomorphicFilter(originImg,0.25,2.2,2.0,30);         %方法二:直方图均衡化,就是不会压缩原始图像    resultImg  = HistogramEqualization(originImg);        %保存实验结果图    resultPath = 'ResImgs/';    resultImgName=[name,'_result_4096.tif'];    saveImg(resultImg,resultPath,resultImgName);    %显示结果图像    subplot(1,3,3),imshow(resultImg,[]);title('同态滤波增强');end

3 参考文献

​[1]袁丽婷,邱力军.基于Matlab的X线医学图像增强与直方图处理方法[J].第四军医大学学报,2007(04):376-378.

部分理论引用网络文献,若有侵权联系博主删除。

你可能感兴趣的:(matlab,图像处理,开发语言)