找回密码
 注册
关于网站域名变更的通知
查看: 574|回复: 1
打印 上一主题 下一主题

基于matlab PSO寻优ACE算法之图像增强

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-5-11 16:43 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

9 g( v3 V' F0 _* d0 |一、简介
% g% y" |% J, w1 [+ j将ace增强后的图像信息熵与图像标准差的乘积作为目标函数, ace的增益因子a作为待寻优的变量;) a" y& r/ P+ j/ R0 F+ O
使用pso算法对ace的增益因子a进行寻优,并返回最优的增益因子;
7 C0 e3 W) `( i0 U/ a将最优增益代入ace算法中,对图像进行增强;6 m3 J: q2 J9 O9 Z) u  k
采用引导滤波对增强后的图像进行降噪,提高可视化效果;- t. B' Q: y" P: W( Q3 B% L7 r
, y2 P3 N# n  z: H$ }+ `4 H+ ~
4 J  z& z) X' W. Z# u; Q" C
二、源代码
+ ?/ z7 F" A* N7 `8 q  O5 ]
* ?+ t* }. Y& x) L6 e
  • %% PSO_ACE
  • % date: 2020_08
  • % Author: X
  • % function: 图像增强,(1) PSO优化ACE增益因子 (2) 引导滤波降噪
  • %% 初始化
  • addpath(genpath(pwd));
  • clear;
  • clc;
  • close all;
  • warning('off')
  • %% 定义全局变量
  • global meanimg stdimg I img
  • I = rgb2ycbcr(imread('test2.jpg'));% 将图片转换到ycbcr空间
  • img = double(I(:,:,1));
  • % 求局部均值
  • filter = fspecial('average',3);
  • meanimg = imfilter(img,filter);
  • % figure;imshow(meanimg/255,[]);
  • % 求局部标准差
  • stdimg = stdfilt(img);
  • % temp = stdfilt(img(:,:,1));
  • %% PSO 寻优
  • a_range=[0,1]; % 参数x变化范围(这里寻优的是ACE算法中的增益因子a)
  • range = [a_range];
  • Max_V = 0.2*(a_range(:,2)-a_range(:,1)); % 最大速度取变化范围的10%~20%
  • n=1; % 待优化函数的维数
  • psoparams = [10 200 10 2 2 0.8 0.2 1500 1e-25 200 NaN 0 0]; % 参数配置,详细查看pso工具箱使用文档
  • Bestarray = pso_Trelea_vectorized('obj_func', n, Max_V, range, 1, psoparams); % 调用PSO寻优,返回最优参数以及最优函数值
  • %% 输出增强后的图像(将获得增益因子代入ACE)
  • D = mean(meanimg(:));
  • c = Bestarray(1)*D./(stdimg);
  • c(c>10) = 3;
  • result = meanimg + c.*(img - meanimg);
  • MIN = min(min(result));
  • MAX = max(max(result));
  • result = (result - MIN)/(MAX - MIN);
  • result = adapthisteq(result);
  • I(:,:,1) = result*255;
  • result_img = ycbcr2rgb(I);
  • figure;imshow(result_img);
  • title('PSO\_ACE');
  • %% 引导滤波降噪
  • [r,c,b]=size(I);
  • x = reshape(result_img,[r*c b]);
  • x = compute_mapping(x,'PCA',1); % 对原图进行PCA降维
  • guidance = reshape(x, r, c)/255; % 获得引导图像
  • result_img = double(result_img)/255;
  • r = 5; % 滤波半径
  • eps = 0.005; % 滤波正则化参数
  • for i = 1:3
  •     result_img_GD(:,:,i) =  guidedfilter(guidance, result_img(:,:,i), r, eps); % 引导滤波
  • end
  • figure;imshow(result_img_GD,[]);
  • title('PSO\_ACE\_GD'); % 显示滤波后的图像; Q: N  F7 ~3 ~5 w3 L7 U! i
         
* R* [) S! Z7 P0 ~+ v0 h
: B( ]4 q$ V# [- w4 A" f/ L; m. y. u; X0 C三、运行结果0 N. G5 Q4 V& b# @5 w/ H) n  l3 k

2 m4 `2 w. ~  \5 F" I; Q. z2 I* k
0 _7 T0 s6 z1 o  {6 X  i, y: N% {0 f3 ^* V5 E0 N

6 y9 m; O+ r, u$ T8 O, o" P( U
: n  q4 L# y4 R% r+ x: X0 O9 X5 l
) C- P  ]. n9 v. y3 ?. `
, u/ @6 U2 m& f$ i+ U, N/ r! T; Z$ `5 t" s6 \$ A* v

) q4 e) `3 }- J

该用户从未签到

2#
发表于 2021-5-11 17:52 | 只看该作者
基于matlab PSO寻优ACE算法之图像增强
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-5 04:18 , Processed in 0.125000 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表