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等。

相关推荐
草莓熊Lotso42 分钟前
【数据结构初阶】--算法复杂度的深度解析
c语言·开发语言·数据结构·经验分享·笔记·其他·算法
KyollBM1 小时前
【CF】Day75——CF (Div. 2) B (数学 + 贪心) + CF 882 (Div. 2) C (01Trie | 区间最大异或和)
c语言·c++·算法
CV点灯大师1 小时前
C++算法训练营 Day10 栈与队列(1)
c++·redis·算法
GGBondlctrl1 小时前
【leetcode】递归,回溯思想 + 巧妙解法-解决“N皇后”,以及“解数独”题目
算法·leetcode·n皇后·有效的数独·解数独·映射思想·数学思想
武子康2 小时前
大数据-276 Spark MLib - 基础介绍 机器学习算法 Bagging和Boosting区别 GBDT梯度提升树
大数据·人工智能·算法·机器学习·语言模型·spark-ml·boosting
武子康2 小时前
大数据-277 Spark MLib - 基础介绍 机器学习算法 Gradient Boosting GBDT算法原理 高效实现
大数据·人工智能·算法·机器学习·ai·spark-ml·boosting
Andrew_Xzw2 小时前
数据结构与算法(快速基础C++版)
开发语言·数据结构·c++·python·深度学习·算法
超的小宝贝3 小时前
数据结构算法(C语言)
c语言·数据结构·算法
木子.李3479 小时前
排序算法总结(C++)
c++·算法·排序算法