【图像增强】基于matlab PSO寻优ACE的图像增强【含Matlab源码 088期】

一、简介

将ace增强后的图像信息熵与图像标准差的乘积作为目标函数, ace的增益因子a作为待寻优的变量;
使用pso算法对ace的增益因子a进行寻优,并返回最优的增益因子;
将最优增益代入ace算法中,对图像进行增强;
采用引导滤波对增强后的图像进行降噪,提高可视化效果;

二、源代码

%% 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'); % 显示滤波后的图像

三、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、备注

完整代码或者代写添加QQ2449341593
往期回顾>>>>>>
【图像识别】基于matlab路面裂缝识别含GUI【含Matlab源码 009期】
【图像识别】基于matlab身份证号码识别【含Matlab源码 014期】
【图像压缩】基于matlab图像处理教程系列之图像压缩【含Matlab源码 024期】
【图像分割】基于matlab图像处理教程系列之图像分割(一)【含Matlab源码 025期】
【图像分割】基于matlab图像处理教程系列之图像分割(二)【含Matlab源码 026期】
【模式识别】基于matlab指纹识别【含Matlab源码 029期】
【模式识别】基于matlab银行卡号识别【含Matlab源码 030期】
【图像聚类】基于matlab FCM和改进的FCM脑部CT图像聚类【含Matlab源码 074期】
【图像评价】基于matlab CCF算法的图像质量评价【含Matlab源码 075期】
【图像增强】基于matlab局部对比度增强的CLAHE算法之直方图增强【含Matlab源码 076期】
【图像融合】基于matlab Frequency Partition之图像融合【含Matlab源码 077期】
【图像评价】基于matlab SVM之图像无参考质量评价【含Matlab源码 078期】
【图像处理】基于matlab DWT+DCT+PBFO改进图像水印隐藏提取含GUI【含Matlab源码 081期】
【图像变换】基于matalb DIBR-3D图像变换【含Matalb源码 082期】
【图像融合】基于matlab CBF算法的图像融合【含Matlab源码 083期】
【图像分割】基于matlab模糊聚类算法FCM的图像分割【含Matlab源码 084期】
【图像分割】基于形态学重建和过滤改进FCM算法(FRFCM)的的图像分割【Matlab 085期】
【图像去噪】基于matlab自适应形态学的图像去噪【含Matlab源码 086期】
【图像增强】基于matlab DEHAZENET和HWD的水下去散射图像增强【含Matlab 087期】

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