Skip to content

Commit 6e29bf8

Browse files
committed
Initial commit
0 parents  commit 6e29bf8

File tree

876 files changed

+58158
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

876 files changed

+58158
-0
lines changed

.DS_Store

12 KB
Binary file not shown.

.gitattributes

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Auto detect text files and perform LF normalization
2+
* text=auto

AblationStudy/29.png

260 KB
Loading

AblationStudy/29_I_Gray_STAR.png

39.3 KB
Loading

AblationStudy/29_I_Gray_STAR_L1.png

62.8 KB
Loading

AblationStudy/29_I_Gray_STAR_L2.png

52.4 KB
Loading

AblationStudy/29_I_Gray_STAR_noT.png

54.1 KB
Loading
114 KB
Loading
87.5 KB
Loading

AblationStudy/29_I_Gray_noS.png

34.1 KB
Loading

AblationStudy/29_R_Gray_STAR.png

107 KB
Loading

AblationStudy/29_R_Gray_STAR_L1.png

105 KB
Loading

AblationStudy/29_R_Gray_STAR_L2.png

107 KB
Loading

AblationStudy/29_R_Gray_STAR_noS.png

126 KB
Loading

AblationStudy/29_R_Gray_STAR_noT.png

82.2 KB
Loading
41.1 KB
Loading
92.2 KB
Loading

Demo_Color.m

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
clc;
2+
clear;
3+
close all;
4+
%%% choose test dataset
5+
datasets = {'LowLight', 'NPE', 'VV', 'NASA', 'LDR'};
6+
Testset = datasets{1}; % select test dataset
7+
Test_dir = fullfile('/home/csjunxu/Paper/Enhancement/Dataset', ['Images_' Testset]);
8+
%%% read images
9+
ext = {'*.jpg','*.jpeg','*.JPG','*.png','*.bmp'};
10+
im_dir = [];
11+
for i = 1 : length(ext)
12+
im_dir = cat(1,im_dir, dir(fullfile(Test_dir,ext{i})));
13+
end
14+
im_num = length(im_dir);
15+
16+
%%% save results
17+
N=11;
18+
name = regexp(im_dir(N).name, '\.', 'split');
19+
I=im2double( imread(fullfile(Test_dir, im_dir(N).name)) );
20+
%I=im2double(imread('correction/img/books.png'));
21+
for scale=1.2
22+
for alpha=0.001
23+
for beta=0.0001
24+
for pI=2
25+
for pR=1
26+
for ch=1:size(I,3)
27+
[L(:,:,ch),R(:,:,ch)]=STAR(I(:,:,ch),alpha,beta,pI,pR);
28+
end
29+
r=mean(reshape(R,size(R,1)*size(R,2),size(R,3)));
30+
for i=1:3
31+
temp=L(:,:,i);
32+
meanLi=mean(temp(:));
33+
L2(:,:,i)=L(:,:,i)./meanLi.*(scale*mean(L(:))*r(i));
34+
end
35+
I_c=L2.*R;
36+
%imshow(R);
37+
%imshow(L2);
38+
%imshow(I_c);
39+
imwrite(I_c,['/home/csjunxu/Paper/Enhancement/Results_Color/books_star_' num2str(scale) '_' num2str(alpha) '_' num2str(beta) '_' num2str(pI) '_' num2str(pR) '.png']);
40+
end
41+
end
42+
end
43+
end
44+
end

Demo_Illumination.m

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
clc;clear;
2+
%%% choose test dataset
3+
datasets = {'35images', '200images'};
4+
%%% metrics
5+
addpath(genpath('metrics'));
6+
metrics = {'NIQE', 'VIF'};
7+
% NIQE and VIF: input image is in uint8;
8+
9+
method = 'STAR';
10+
for d = 1%:length(datasets)
11+
Testset = datasets{d}; % select test dataset
12+
Test_dir = fullfile('C:\Users\csjunxu\Desktop\star\', Testset);
13+
%%% read images
14+
ext = {'*.jpg','*.jpeg','*.png','*.bmp'};
15+
im_dir = [];
16+
for i = 1 : length(ext)
17+
im_dir = cat(1,im_dir, dir(fullfile(Test_dir,ext{i})));
18+
end
19+
im_num = length(im_dir);
20+
write_mat_dir = ['/home/csjunxu/Paper/Enhancement/Results_' Testset '/'];
21+
write_img_dir = [write_mat_dir method '/'];
22+
if ~isdir(write_img_dir)
23+
mkdir(write_img_dir);
24+
end
25+
gamma=2.2; % fixed parameter suggested by other researchers
26+
alpha = 0.001;
27+
beta = 0.0001;
28+
for pI = 1% [1.6:0.1:1.9]
29+
for pR = 1 % [0.5 1]
30+
NIQEs = zeros(im_num,1);
31+
VIFs = zeros(im_num,1);
32+
for i = 23%1:im_num
33+
name = regexp(im_dir(i).name, '\.', 'split');
34+
Im=im2double( imread(fullfile(Test_dir, im_dir(i).name)) );
35+
[I, R] = STAR(Im, alpha, beta, pI, pR);
36+
hsv = rgb2hsv(Im);
37+
I_gamma = I.^(1/gamma);
38+
S_gamma = R .* I_gamma;
39+
hsv(:,:,3) = S_gamma;
40+
eIm = hsv2rgb(hsv);
41+
% convert Im and eIm to uint8
42+
Im = uint8(Im*255);
43+
eIm = uint8(eIm*255);
44+
% metrics
45+
NIQEs(i) = niqe(eIm);
46+
VIFs(i) = VIF(Im,eIm);
47+
fprintf('%s : NIQE = %2.2f, VIF = %2.2f\n', im_dir(i).name, NIQEs(i), VIFs(i));
48+
imwrite(eIm, [method '_aIpI=' num2str(pI) '_RpR=' num2str(pR) '_alpha=' ...
49+
num2str(alpha) '_beta=' num2str(beta) '_' name{1} '.png'])
50+
end
51+
matname = [write_mat_dir '/Our_aIpI=' num2str(pI) '_RpR=' num2str(pR) '_alpha=' ...
52+
num2str(alpha) '_beta=' num2str(beta) '.mat'];
53+
mNIQEs = mean(NIQEs);
54+
mVIFs = mean(VIFs);
55+
fprintf('mNIQE = %2.4f, mVIF = %2.4f\n', mNIQEs, mVIFs);
56+
%save(matname, 'NIQEs', 'mNIQEs', 'VIFs', 'mVIFs');
57+
end
58+
end
59+
end

Demo_Retinex.m

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
% Retinex theory is a color perception model of human vision and is
2+
% used to remove illumination effects in images. The primary goal
3+
% of Retinex is to decompose the observed images into illumination
4+
% and reflectance.
5+
6+
clc;clear;
7+
%%% methods
8+
addpath(genpath('methods'));
9+
%%% choose test dataset
10+
datasets = {'LowLight', 'NPE', 'VV', 'NASA', 'LDR'};
11+
Testset = datasets{1}; % select test dataset
12+
Test_dir = fullfile('/home/csjunxu/Paper/Enhancement/Dataset', ['Images_' Testset]);
13+
%%% read images
14+
ext = {'*.jpg','*.jpeg','*.JPG','*.png','*.bmp'};
15+
im_dir = [];
16+
for i = 1 : length(ext)
17+
im_dir = cat(1,im_dir, dir(fullfile(Test_dir,ext{i})));
18+
end
19+
im_num = length(im_dir);
20+
21+
%%% save results
22+
N=32;
23+
name = regexp(im_dir(N).name, '\.', 'split');
24+
Im=im2double( imread(fullfile(Test_dir, im_dir(N).name)) );
25+
write_dir = './';
26+
if ~isdir(write_dir)
27+
mkdir(write_dir);
28+
end
29+
imwrite(Im, [write_dir name{1} '.png'])
30+
31+
% STAR
32+
method = 'STAR';
33+
alpha = 0.001;
34+
beta = 0.0001;
35+
for pI = [1.5]
36+
for pR = [1]
37+
[I, R] = STAR(Im, alpha, beta, pI, pR);
38+
hsv = rgb2hsv(Im);
39+
subplot(2,2,1); imshow(I); title('Illumination (Gray)');
40+
imwrite(I, [write_dir name{1} '_I_Gray_' method '_pI' num2str(pI) '_pR' num2str(pR) '.png'])
41+
hsv(:,:,3) = I;
42+
subplot(2,2,2); imshow(hsv2rgb(hsv)); title('Illumination (RGB)');
43+
imwrite(hsv2rgb(hsv), [write_dir name{1} '_I_RGB_' method '_pI' num2str(pI) '_pR' num2str(pR) '.png'])
44+
subplot(2,2,3); imshow(I); title('Reflectance (Gray)');
45+
imwrite(R, [write_dir name{1} '_R_Gray_' method '_pI' num2str(pI) '_pR' num2str(pR) '.png'])
46+
hsv(:,:,3) = R;
47+
subplot(2,2,4); imshow(hsv2rgb(hsv)); title('Reflectance (RGB)');
48+
imwrite(hsv2rgb(hsv), [write_dir name{1} '_R_RGB_' method '_pI' num2str(pI) '_pR' num2str(pR) '.png'])
49+
end
50+
end
51+
52+
% JIEP ICCV2017
53+
method = 'JieP';
54+
[I, R] = jiep(Im);
55+
hsv = rgb2hsv(Im);
56+
subplot(2,2,1); imshow(I); title('Illumination (Gray)');
57+
imwrite(I, [write_dir name{1} '_I_Gray_' method '.png'])
58+
hsv(:,:,3) = I;
59+
subplot(2,2,2); imshow(hsv2rgb(hsv)); title('Illumination (RGB)');
60+
imwrite(hsv2rgb(hsv), [write_dir name{1} '_I_RGB_' method '.png'])
61+
subplot(2,2,3); imshow(I); title('Reflectance (Gray)');
62+
imwrite(R, [write_dir name{1} '_R_Gray_' method '.png'])
63+
hsv(:,:,3) = R;
64+
subplot(2,2,4); imshow(hsv2rgb(hsv)); title('Reflectance (RGB)');
65+
imwrite(hsv2rgb(hsv), [write_dir name{1} '_R_RGB_' method '.png'])
66+
%subplot(2,2,1); imshow(Im); title('Input');
67+
68+
% WVM CVPR2016
69+
method = 'WVM';
70+
Im = 255*Im;
71+
if size(Im,3)>1
72+
HSV = rgb2hsv(Im); % RGB space to HSV space
73+
S = HSV(:,:,3); % V layer
74+
else
75+
S = Im; % gray image
76+
end
77+
c_1 = 0.01; c_2 = 0.1; lambda = 1; % set parameters
78+
epsilon_stop = 1e-3; % stopping criteria
79+
[ R, I, epsilon_R, epsilon_L ] = WVM_CVPR2016( S, c_1, c_2, lambda, epsilon_stop );
80+
Im = Im/255;
81+
I = I/255;
82+
hsv = rgb2hsv(Im);
83+
subplot(2,2,1); imshow(I); title('Illumination (Gray)');
84+
imwrite(I, [write_dir name{1} '_I_Gray_' method '.png'])
85+
hsv(:,:,3) = I;
86+
subplot(2,2,2); imshow(hsv2rgb(hsv)); title('Illumination (RGB)');
87+
imwrite(hsv2rgb(hsv), [write_dir name{1} '_I_RGB_' method '.png'])
88+
subplot(2,2,3); imshow(I); title('Reflectance (Gray)');
89+
imwrite(R, [write_dir name{1} '_R_Gray_' method '.png'])
90+
hsv(:,:,3) = R;
91+
subplot(2,2,4); imshow(hsv2rgb(hsv)); title('Reflectance (RGB)');
92+
imwrite(hsv2rgb(hsv), [write_dir name{1} '_R_RGB_' method '.png'])
93+
%subplot(2,2,1); imshow(Im); title('Input');

DrawFigures/.DS_Store

6 KB
Binary file not shown.

DrawFigures/DrawBox.m

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
function [ outputimage ] = DrawBox( image, top, left, width, rgbarray)
2+
%UNTITLED Summary of this function goes here
3+
% Detailed explanation goes here
4+
5+
[m, n, c] = size(image);
6+
if(c==3)
7+
outputimage = image;
8+
else
9+
outputimage(:,:,1) = image;
10+
outputimage(:,:,2) = image;
11+
outputimage(:,:,3) = image;
12+
end
13+
r = rgbarray(1);
14+
g = rgbarray(2);
15+
b = rgbarray(3);
16+
17+
outputimage(top:top+width,left,1) = r;
18+
outputimage(top:top+width,left,2) = g;
19+
outputimage(top:top+width,left,3) = b;
20+
outputimage(top:top+width,left+1,1) = r;
21+
outputimage(top:top+width,left+1,2) = g;
22+
outputimage(top:top+width,left+1,3) = b;
23+
outputimage(top:top+width,left+width,1) = r;
24+
outputimage(top:top+width,left+width,2) = g;
25+
outputimage(top:top+width,left+width,3) = b;
26+
outputimage(top:top+width,left+width-1,1) = r;
27+
outputimage(top:top+width,left+width-1,2) = g;
28+
outputimage(top:top+width,left+width-1,3) = b;
29+
30+
outputimage(top,left:left+width,1) = r;
31+
outputimage(top,left:left+width,2) = g;
32+
outputimage(top,left:left+width,3) = b;
33+
outputimage(top+1,left:left+width,1) = r;
34+
outputimage(top+1,left:left+width,2) = g;
35+
outputimage(top+1,left:left+width,3) = b;
36+
outputimage(top+width,left:left+width,1) = r;
37+
outputimage(top+width,left:left+width,2) = g;
38+
outputimage(top+width,left:left+width,3) = b;
39+
outputimage(top+width-1,left:left+width,1) = r;
40+
outputimage(top+width-1,left:left+width,2) = g;
41+
outputimage(top+width-1,left:left+width,3) = b;
42+
43+
end
44+

DrawFigures/Fuse.m

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
clear;
2+
Original_image_dir = './';
3+
fpath = fullfile(Original_image_dir, '29*L2.png');
4+
im_dir = dir(fpath);
5+
im_num = length(im_dir);
6+
Im1 = im2double(imread(fullfile(Original_image_dir, im_dir(1).name)));
7+
Im2 = im2double(imread(fullfile(Original_image_dir, im_dir(2).name)));
8+
RIm1 = imresize(Im1, 0.5);
9+
RIm2 = imresize(Im2, 0.5);
10+
RIm = zeros(size(RIm1));
11+
RIm(:,1:125)=RIm1(:,1:125);
12+
RIm(:,126:250)=RIm2(:,126:250);
13+
imwrite(RIm, ['resize_29_IR_STAR_L2.png']);

DrawFigures/Rescale.m

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
clear;
2+
scale = [256, 256];
3+
ii = 100;
4+
Original_image_dir = '../Priors/';
5+
fpath = fullfile(Original_image_dir, '*.png');
6+
im_dir = dir(fpath);
7+
im_num = length(im_dir);
8+
for i=1:im_num
9+
Im = im2double(imread(fullfile(Original_image_dir, im_dir(i).name)));
10+
[hh, ww, cc] = size(Im);
11+
ll = min(hh,ww);
12+
image = imresize(Im(1:ll,ii:ll+ii-1,:), scale);
13+
imname = ['rs' im_dir(i).name];
14+
imwrite(image,imname,'png');
15+
end

DrawFigures/Rescale.m~

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
clear;
2+
scale = [256, 256];
3+
ii = 100;
4+
Original_image_dir = '../Priors/';
5+
fpath = fullfile(Original_image_dir, '*.png');
6+
im_dir = dir(fpath);
7+
im_num = length(im_dir);
8+
for i=1:im_num
9+
Im = im2double(imread(fullfile(Original_image_dir, im_dir(i).name)));
10+
[hh, ww, cc] = size(Im);
11+
ll = min(hh,ww);
12+
image = imresize(Im(1:ll,ii:ll+ii-1,:), scale);
13+
imname = ['rs');
14+
imwrite(image,imname,'png');
15+
end

DrawFigures/STAR_3.png

1.48 MB
Loading

DrawFigures/boxandresize.m

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
function [ outputimage ] = boxandresize( image, top, left, width, scale, model )
2+
%UNTITLED3 Summary of this function goes here
3+
% Detailed explanation goes here
4+
% top 框顶坐标
5+
% left 框左边坐标
6+
% width 框宽度
7+
% scale 放大倍数
8+
% model 模式
9+
outputimage = DrawBox( image, top, left, width, [0,255,0]);
10+
11+
smallimage = outputimage(top:top+width,left:left+width,:);
12+
bigimage = imresize(smallimage,scale, 'bic');
13+
[m ,n, c] = size(bigimage);
14+
if(model==1) %右下角
15+
outputimage(end-m+1:end,end-n+1:end,:) = bigimage;
16+
elseif(model==2) %左下角
17+
outputimage(end-m+1:end,1:n,:) = bigimage;
18+
else
19+
outputimage(1:m,end-n+1:end,:) = bigimage;
20+
end
21+
22+
end
23+

DrawFigures/createfigure.m

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
function createfigure(X1, Y1, Y2)
2+
%CREATEFIGURE1(X1, Y1, Y2)
3+
% X1: x 数据的矢量
4+
% Y1: y 数据的矢量
5+
% Y2: y 数据的矢量
6+
7+
% 由 MATLAB 于 15-Oct-2016 13:14:45 自动生成
8+
9+
% 创建 figure
10+
figure1 = figure;
11+
12+
% 创建 subplot
13+
subplot1 = subplot(2,1,1,'Parent',figure1);
14+
%% 取消以下行的注释以保留坐标轴的 X 范围
15+
% xlim(subplot1,[0.001 0.004]);
16+
%% 取消以下行的注释以保留坐标轴的 Y 范围
17+
% ylim(subplot1,[38 38.6]);
18+
box(subplot1,'on');
19+
hold(subplot1,'on');
20+
21+
% 创建 ylabel
22+
ylabel('PSNR (dB)');
23+
24+
% 创建 xlabel
25+
xlabel('\lambda');
26+
27+
% 创建 plot
28+
plot(X1,Y1,'Parent',subplot1,'MarkerFaceColor',[0 0 0],'MarkerSize',3,...
29+
'Marker','o',...
30+
'LineWidth',1,...
31+
'LineStyle','-.',...
32+
'Color',[0 0 1]);
33+
34+
% 创建 subplot
35+
subplot2 = subplot(2,1,2,'Parent',figure1);
36+
%% 取消以下行的注释以保留坐标轴的 X 范围
37+
% xlim(subplot2,[0.001 0.004]);
38+
%% 取消以下行的注释以保留坐标轴的 Y 范围
39+
% ylim(subplot2,[0.96 0.97]);
40+
box(subplot2,'on');
41+
hold(subplot2,'on');
42+
43+
% 创建 ylabel
44+
ylabel('SSIM');
45+
46+
% 创建 xlabel
47+
xlabel('\lambda');
48+
49+
% 创建 plot
50+
plot(X1,Y2,'Parent',subplot2,'MarkerFaceColor',[0 0 0],'MarkerSize',3,...
51+
'Marker','o',...
52+
'LineWidth',1,...
53+
'LineStyle','-.',...
54+
'Color',[1 0 0]);
55+

0 commit comments

Comments
 (0)