Select Git revision
compress_jp2.m
compress_jp2.m 4.58 KiB
% Compress using jpeg2000
% pairwise NCD
clear;
close all;
tic;
% system('del im*.dat*');
input = importdata_phase();
%% Try all the images
% % Category 1
% input{1} = rgb2gray(imread('2014-01-24\Cobblestone category 1 image c_32X.tif'));
% input{2} = rgb2gray(imread('2014-01-24\Cobblestone category 1 image b_32X.tif'));
% input{3} = rgb2gray(imread('2014-01-24\Cobblestone category 1 image a _32X.tif'));
% input{4} = rgb2gray(imread('2014-01-24\Category 1\Catgeroy 1_32X_A.tif'));
%
% % Category 2
% input{5} = rgb2gray(imread('2014-01-24\Cobblestone category 3 image a_32X.tif'));
% input{6} = rgb2gray(imread('2014-01-24\Cobblestone category 2 image b_32X.tif'));
% input{7} = rgb2gray(imread('2014-01-24\Category 2\Catgeroy 2_32X_A.tif'));
% input{8} = rgb2gray(imread('2014-01-24\Category 2\Catgeroy 2_32X_B.tif'));
% input{9} = rgb2gray(imread('2014-01-24\Category 2\Catgeroy 2_32X_C.tif'));
%
% % Category 3
% input{10} = rgb2gray(imread('2014-01-24\Cobblestone category 2 image a_32X.tif'));
% input{11} = rgb2gray(imread('2014-01-24\Cobblestone category 3 image b_32X.tif'));
% input{12} = rgb2gray(imread('2014-01-24\Category 3\Category 3_32X_A.tif'));
% input{13} = rgb2gray(imread('2014-01-24\Category 3\Category 3_32X_B.tif'));
% input{14} = rgb2gray(imread('2014-01-24\Category 3\Category 3_32X_C.tif'));
%
% % Category 5
% input{15} = rgb2gray(imread('2014-01-24\Cobblestone category 5 image c_32X.tif'));
% input{16} = rgb2gray(imread('2014-01-24\Cobblestone category 5 image b_32X.tif'));
% input{17} = rgb2gray(imread('2014-01-24\Cobblestone category 5 image a_32X.tif'));
% % letters =['A' 'B' 'C' 'D' 'E' 'F' 'G' 'H' 'I' 'J' 'K' 'L' 'M'];
% % letters =['A' 'B' 'C' 'D' 'F' 'G' 'H' 'I' 'J' 'L' 'M'];
% letters = ['C' 'J' 'M'];
% % letters = ['C' 'M'];
% for i=1:numel(letters)
% filename = ['2014-01-24\Category 5\Catgory 5_32X_' letters(i) '.tif'];
% input{17+i} = rgb2gray(imread(filename));
% end
%% Computation
for i=1:size(input,2)
% input{i} = mat2gray(input{i});
% input{i} = imresize(input{i}, 0.5);
% input{i} = (stdfilt(input{i}, getnhood(strel('disk',3))));
[m n] = size(input{i});
input{i} = input{i}(1:m/2, 1:n/2);
input{i} = CudaMex('ContrastEnhancement', input{i}, [5 5 1],[3 3 1]);
% if size(input{i},3) == 3
% input{i} = rgb2gray(input{i});
% end
% % input{i} = imadjust(input{i});
input{i} = mat2gray(stdfilt(input{i}, getnhood(strel('disk',5))));
fname = ['im' num2str(i) '.jp2'];
imwrite(input{i}, fname, 'jp2', 'Mode', 'lossless','Tilesize', size(input{i})/2);
fileinfo = dir(fname);
C(i) = fileinfo.bytes;
end
% comb1 = [input{1}; input{2}];
% imwrite(comb1, 'comb1.jp2');%, 'Mode', 'lossless');
% fileinfo = dir('comb1.jp2');
% s1 = fileinfo.bytes;
% mn = min(C(1),C(2));
% mx = max(C(1),C(2));
% ncd(1,2) = (s1 - mn)/mx;
%
% comb2 = [input{1}; input{3}];
% imwrite(comb2, 'comb2.jp2');%, 'Mode', 'lossless');
% fileinfo = dir('comb2.jp2');
% s2 = fileinfo.bytes;
% mn = min(C(1),C(3));
% mx = max(C(1),C(3));
% ncd(1,3) = (s2 - mn)/mx;
%
% comb3 = [input{1}; input{4}];
% imwrite(comb3, 'comb3.jp2');%, 'Mode', 'lossless');
% fileinfo = dir('comb3.jp2');
% s3 = fileinfo.bytes;
% mn = min(C(1),C(4));
% mx = max(C(1),C(4));
% ncd(1,4) = (s3 - mn)/mx;
format long;
for i=1:size(input, 2)
for j=1:size(input,2)
comb = [input{i} input{j}];
fname = ['comb' num2str(i) '_' num2str(j) '.jp2'];
imwrite(comb, fname,'jp2' , 'Mode', 'lossless','Tilesize', size(input{3}));
fileinfo = dir(fname);
s(i,j) = fileinfo.bytes;
% ncd(i,j) = (size(CE{k},1) - min(C(i),C(j)))/max(C(i),C(j));
end
end
for i=1:size(input, 2)
for j=1:size(input,2)
mn = min(C(i),C(j));
mx = max(C(i),C(j));
ncd(i,j) = (s(i,j) - mn)/mx;
end
end
[kGap Gap S idx] = GapSpectral(ncd, 7);
[idx2 Y] = SpectralCluster(ncd, 2);
[idx4 Y] = SpectralCluster(ncd, 4);
[idx5 Y] = SpectralCluster(ncd, 5);
% for i=1:size(input, 2)
% for j=1:size(input,2)
% comb3(:,:,1) = input{i};
% comb3(:,:,2) = input{j};
% comb3(:,:,3) = zeros(size(input{i}));
% fname = ['comb3' num2str(i) '_' num2str(j) '.jp2'];
% imwrite(comb3, fname,'jp2', 'Mode', 'lossless');
% fileinfo = dir(fname);
% s3(i,j) = fileinfo.bytes;
% mn = min(C(i),C(j));
% mx = max(C(i),C(j));
% ncd3(i,j) = (s3(i,j) - mn)/mx;
% % ncd(i,j) = (size(CE{k},1) - min(C(i),C(j)))/max(C(i),C(j));
% end
% end
%
toc;