⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vq_withoutpca.m

📁 用Cross validation的方法建立人工神经网络的模型!
💻 M
字号:
%********************************************************************
%                                                                   * 
%                       Vector Quantization                         *
%                                                                   * 
%********************************************************************
%********************************************************************
%  GLA -> cdbk -> 2D images encoding      *
%********************************************************************

function [compressed_image VQ_time] = VQ_WithoutPCA(blocksize, nwds)

%clear
%clc

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%    VQ image compress
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

fprintf(1,'\n\nblocksize= %d, nwds = %d\n\n', blocksize, nwds);

% load images
load initial_ALZ_drifed_masked.mat;

begin_time = cputime;

num_AA_volumes = size(AA, 2);
num_BB_volumes = size(BB, 2);
num_all_volumes = num_AA_volumes + num_BB_volumes;
all_volumes = [AA BB];

n_sample_images = 100;  % number of sample images to generate cdbk
threshold = 0.01;

[nx ny nz] = size(all_volumes{1});
n_all_images = nz * num_all_volumes;

% partition each image and take the mean of each region, retrieve feature
% vectors for each image

all_image = cell(1,n_all_images); % contains the features for all images
% get image features
i_image = 1;
for index = 1: num_all_volumes
    one_volume = all_volumes{index};
    for i_2D = 1: nz
        % get the 2D slices from volume
        slice = one_volume(:,:,i_2D);
        % partion each slice, take mean of each region
        [features, n_rows, n_columns] = get_features(slice, blocksize);
        all_image{i_image} = features;
        i_image = i_image+1;
    end
end

n_data = size(all_image,2);

GLA_begin_time = cputime;

sample_data = zeros(0,0);
sample_images = round(1+(n_data-1)*rand(1,n_sample_images)); %randint(1,n_sample_images,[1 n_data]);
for i = 1: n_sample_images
    sample_data = [sample_data; all_image{sample_images(i)}];
end

% GLA
% Generate code book using GLA
[region, cdbk, iterations, distortion] = GLAcdbk(sample_data, n_columns, nwds, threshold);
GLA_end_time = cputime;
GLA_time = GLA_end_time - GLA_begin_time;
fprintf(1,'GLA time = %.4f\n', GLA_time);

fin_cdbk = cdbk{iterations};
cdbk_frequency = zeros(n_all_images, nwds);

% Encode each image using the generated cdbk
ImgEncode_begin_time = cputime;
for i = 1: n_all_images
    [compressed_image{i},reconstructed_image{i},cdbk_frequency(i,:)] = image_encode(all_image{i},fin_cdbk);
end
ImgEncode_end_time = cputime;
ImgEncode_time = ImgEncode_end_time - ImgEncode_begin_time;
fprintf(1,'ImgEncode time = %.4f\n', ImgEncode_time);

% So far, VQ image compression is done
fprintf(1,'\nVQ image compression time = %.4f\n', cputime - begin_time);

% save results
savefilename = ['VQ_Ali_',num2str(blocksize),'_',num2str(nwds),'_2'];
save (savefilename, 'compressed_image', 'reconstructed_image', 'cdbk_frequency', 'cdbk');

VQ_time = GLA_time + ImgEncode_time;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -