0
点赞
收藏
分享

微信扫一扫

【图像增强】基于粒子群优化ace实现图像增强附matlab代码

1 简介

医学图像由于本身及成像条件的限制,图像的对比度很低,因此对比度增强算法在医学图像方面显得很有必要。人眼对高频信号(边缘)比较敏感,但是如果高频信号嵌入在大量的低频背景+噪声信号中,其视觉可见性会降低,此时适当提高高频部分能够提高视觉效果。在这方面,传统的线性对比度拉升以及直方图均衡是最为广泛的全局图像增强方法。对比度拉升可以调整图像的动态范围,直方图均衡则是利用直方图分布概率重新映射图像的数据。但是,全局直方图均衡化可能加强部分噪声信号。为了避免低频背景的干扰,采用“局部”的增强方法可能会取得更好的效果。


自适应对比度增强原理:

ACE原理其实挺简单的,即是将一幅图像分成两个部分:一是低频部分,可以通过图像的低通滤波(平滑模糊)获得;二是高频部分,可以由原图减去低频部分得到。而算法的目标是增强代表细节的高频部分,即对高频部分乘以某个增益值,然后重组得到增强的图像。所以ACE算法的核心就是高频部分增益系数的计算,一种方案是将增益设为一个固定值,另一种方案是将增益值表示为与方差相关的量,后面在附加的公式中再说明。

【图像增强】基于粒子群优化ace实现图像增强附matlab代码_信息熵

在图像的高频区域,局部均方差较大,此时增益值就比较小,这样结果不会出现过亮情况。但是在图像平滑的区域,局部均方差很小,此时增益值比较大,从而可能会放大噪声信号,所以需要对增益最大值做一定的限制才能取得较好的效果。

算法流程:

(1) 将ace增强后的图像信息熵与图像标准差的乘积作为目标函数, ace的增益因子a作为待寻优的变量;

(2) 使用pso算法对ace的增益因子a进行寻优,并返回最优的增益因子;

(3) 将最优增益代入ace算法中,对图像进行增强;

(4) 采用引导滤波对增强后的图像进行降噪,提高可视化效果;

2 部分代码

function val = calcu_entro(img)
I=rgb2gray(img);
[C,L]=size(I); % 求图像的尺寸
Img_size=C*L; % 图像像素点的总个数
G=256; % 图像的灰度级
%% 图像信息熵
H=0;
nk=zeros(G,1);
for i=1:C
for j=1:L
Img_level=I(i,j)+1; % 获取图像的灰度级
nk(Img_level)=nk(Img_level)+1; % 统计每个灰度级像素的点数
end
end
for k=1:G
Ps(k)=nk(k)/Img_size; % 计算每一个像素点的概率
if Ps(k)~=0
H=-Ps(k)*log2(Ps(k))+H; %求熵值的公式
end
end
%% 灰度图标准方差
stdimg = stdfilt(I);
S = sum(stdimg(:));
%% 目标函数值
val = atan(S)*atan(H);

3 仿真结果

【图像增强】基于粒子群优化ace实现图像增强附matlab代码_信息熵_02

【图像增强】基于粒子群优化ace实现图像增强附matlab代码_方差_03

4 参考文献

[1]李丙春, 耿国华. 基于粒子群优化的图像自适应增强方法[J]. 计算机工程与设计, 2007, 28(20):3.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

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

【图像增强】基于粒子群优化ace实现图像增强附matlab代码_方差_04

举报

相关推荐

0 条评论