MATLAB环境下基于同态滤波方法的医学图像增强

目前图像增强技术主要分为基于空间域和基于频率域两大方面,基于空间域图像增强的方法包括了直方图均衡化方法和 Retinex 方法等,基于频率域的方法包括同态滤波方法。其中直方图均衡化方法只是根据图像的灰度概率分布函数进行简单的全局拉伸,没有考虑像素间的灰度联系情况,进行直方图均衡化后,会在一定程度上提高图像的对比度,但是图像的灰度级会进行合并进而减少,造成细节的丢失。而 Retinex 方法假定空间照度是缓慢变化的,在图像明暗变化剧烈的区域,容易出现光晕现象。因此在处理光照差异很明显的图片,基于频率域的同态滤波方法有更好的效果。

同态滤波是一种结合了频率过滤和灰度变换的方法,它以图像的照度反射模型作为频域的处理基础,分别对低频信息进行增强,高频信息进行抑制,可以有效解决图像上照度不均匀和动态范围过大对图像产生影响的问题,在不损失亮区细节信息的同时,有效增强暗区的细节信息。

程序运行环境为MATLAB R2018A,使用同态滤波方法进行医学图像增强,算法可以参考:

1龚云,颉昕宇.基于同态滤波方法的煤矿井下图像增强技术研究J.煤炭科学技术,2023,51(03):241-250.

2王娟,李军芳.一种基于同态滤波的水下目标深度辨识方法J.实验室研究与探索,2022,41(06):62-66+105.

部分程序如下:

复制代码
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('参考结果图像');
% 方法一:使用同态滤波增强
%方法二:直方图均衡化,就是不会压缩原始图像
    %保存实验结果图
    resultPath = 'ResImgs/';
    resultImgName=[name,'_result_4096.tif'];
    saveImg(resultImg,resultPath,resultImgName);

    %显示结果图像
    subplot(1,3,3),imshow(resultImg,[]);title('同态滤波增强');
end

出图如下:

工学博士,担任《Mechanical System and Signal Processing》审稿专家,担任
《中国电机工程学报》优秀审稿专家,《控制与决策》,《系统工程与电子技术》,《电力系统保护与控制》,《宇航学报》等EI期刊审稿专家。

擅长领域:现代信号处理,机器学习,深度学习,数字孪生,时间序列分析,设备缺陷检测、设备异常检测、设备智能故障诊断与健康管理PHM等。

相关推荐
小O的算法实验室5 小时前
IEEE TASE,基于MPC的多无人机协同搜索竞争群体优化方法
算法
Tbisnic6 小时前
BGE-M3 算法详解:从模型架构到三种检索方式的数学原理
算法·自然语言处理·大模型·bert·transformer·注意力机制
Brilliantwxx6 小时前
【算法从零到千】【55-58】哈希位图+常见数学运算 接口
算法
AI的探索之旅6 小时前
97 个 OpenCV 实例(七):SIMD 向量化,给像素处理装上涡轮增压
人工智能·opencv·计算机视觉
空堂与归7 小时前
用户分群找不到规律?用K-Means聚类算法自动发现数据模式
算法·机器学习·kmeans·聚类
动词ing8 小时前
【C语言】自定义函数+指针入门
c语言·开发语言·算法
重生之后端学习8 小时前
283. 移动零[简单]✅
开发语言·数据结构·算法·leetcode·职场和发展
一只小小的芙厨8 小时前
基础数论总结
笔记·学习·算法
夜不会漫长10 小时前
C++入门(1)
开发语言·c++·算法
wen_zhufeng11 小时前
IndexTTS 2.5 技术报告
人工智能·算法·机器学习