Skip to content
Snippets Groups Projects
Select Git revision
  • master
1 result

compress_jp2.m

Blame
  • 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;