⛄一、获取代码方式
获取代码方式1:
完整代码已上传我的资源:【图像增强】基于matlab单尺度Retinex图像增强【含Matlab源码 3961期】
点击上面蓝色字体,直接付费下载,即可。
获取代码方式2:
付费专栏Matlab图像处理(初级版)
备注:
点击上面蓝色字体付费专栏Matlab图像处理(初级版),扫描上面二维码,付费29.9元订阅海神之光博客付费专栏Matlab图像处理(初级版),凭支付凭证,私信博主,可免费获得1份本博客上传CSDN资源代码(有效期为订阅日起,三天内有效);
点击CSDN资源下载链接:1份本博客上传CSDN资源代码
⛄二、单尺度Retinex图像增强
单尺度Retinex图像增强是一种经典的图像增强算法,它基于人眼感知的原理,旨在提高图像的对比度和亮度。其原理如下:
(1)反射率估计:首先,将输入图像分解为反射率和亮度两个分量。反射率表示图像中物体表面的反射特性,亮度表示图像中的全局光照强度。
(2)对数域操作:对反射率和亮度进行对数变换,将其转换到对数域。这是因为在对数域中,图像的低频部分和高频部分可以更好地分离。
(3)低频增强:对反射率的对数域图像进行低频增强操作。这一步旨在增强图像中的低频细节,使得物体的纹理和结构更加清晰。
(4)高频补偿:对亮度的对数域图像进行高频补偿操作。这一步旨在补偿图像中的高频细节,使得图像的细节更加突出。
(5)反变换:将经过增强的反射率和亮度分量进行反变换,得到最终的增强图像。
⛄三、部分源代码
clc
clear
close all
% 输入原始图像
image = imread(‘ant.jpg’);
% 构造高斯滤波器
[N1, M1, dim] = size(image);
sigma = 250;
F = fspecial(‘gaussian’, [N1,M1], sigma);
Efft = fft2(double(F));
%%%%%%%%%%%%%%%%%%% 获取R通道值,并进行对数处理 %%%%%%%%%%%%%%%%%%%%%%%
R = image(:, :, 1);
R0 = double®;
Rlog = log(R0+1);
Rfft2 = fft2(R0);
DR0 = Rfft2.* Efft;
DR = ifft2(DR0);
% 求反射分量,并归一化处理
DRlog = log(DR +1);
Rr = Rlog - DRlog;
EXPRr = exp(Rr);
MIN = min(min(EXPRr));
MAX = max(max(EXPRr));
EXPRr = (EXPRr - MIN)/(MAX - MIN);
% 调用CLAHE对比度增强函数
EXPRr = adapthisteq(EXPRr);
%%%%%%%%%%%%%%%%%%% 获取G通道值,并进行对数处理 %%%%%%%%%%%%%%%%%%%%%%%
G = image(:, :, 2);
G0 = double(G);
Glog = log(G0+1);
Gfft2 = fft2(G0);
DG0 = Gfft2.* Efft;
DG = ifft2(DG0);
% 求反射分量,并归一化处理
DGlog = log(DG +1);
Gg = Glog - DGlog;
EXPGg = exp(Gg);
MIN = min(min(EXPGg));
MAX = max(max(EXPGg));
EXPGg = (EXPGg - MIN)/(MAX - MIN);
% 调用CLAHE对比度增强函数
EXPGg = adapthisteq(EXPGg);
%%%%%%%%%%%%%%%%%%% 获取B通道值,并进行对数处理 %%%%%%%%%%%%%%%%%%%%%%%
B = image(:, :, 3);
B0 = double(B);
Blog = log(B0+1);
Bfft2 = fft2(B0);
DB0 = Bfft2.* Efft;
DB = ifft2(DB0);
% 求反射分量,并归一化处理
DBlog = log(DB+1);
Bb = Blog - DBlog;
EXPBb = exp(Bb);
MIN = min(min(EXPBb));
MAX = max(max(EXPBb));
EXPBb = (EXPBb - MIN)/(MAX - MIN);
% 调用CLAHE对比度增强函数
EXPBb = adapthisteq(EXPBb);
% 合成SSR彩色图像
ssr_rgb = cat(3, EXPRr, EXPGg, EXPBb)*255;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 计算增强图像的评价指标 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
improved_gray_image = rgb2gray(uint8(ssr_rgb));
gray_image = rgb2gray(image);
% Mean
[M_out,N_in] = Mean( improved_gray_image,gray_image );
% MSE
k = 3;
mse1 = MSE(gray_image,k);
mse2 = MSE(improved_gray_image,k);
% PSNR
psnr = PSNR(improved_gray_image,gray_image);
% information entropy,IE
ie_src = IE(gray_image,k);
ie = IE(improved_gray_image,k);
% SSIM
ssim = SSIM( improved_gray_image,gray_image );
index = [M_out,N_in,mse1,mse2,psnr,ie_src,ie,ssim];
%******************************* 图像输出显示 ******************************%
figure(1)
imshow(image,[]);title(‘原始图像’);
figure(2)
imshow(uint8(ssr_rgb));title(‘SSR增强的彩色图像’);
% 显示增强后的图像直方图
figure(3)
imhist(improved_gray_image);title(‘增强图像直方图’);
% xlabel(‘增强图像’)
⛄四、运行结果
⛄五、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1]恩铭,杨松,姚志强,骆成军.基于CNN模型的椒盐噪声图像的分类[J].新乡学院学报. 2022,39(03)
3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除