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

📄 pdfbcalc_imagekld.m

📁 matlab官方网站中的用于图像融合技术的contourlet变换源代码
💻 M
字号:
% pdfbcalc_imagekld.m% written by: Duncan Po% Date: November 16, 2002% calculate the Kublick-Liebler distance between two images based on % on their hidden markov tree parameters% Usage:    kld = pdfbcalc_imagekld(savename, sdir, model1, model2)%           kld = pdfbcalc_imagekld(savename, sdir, image1, model2, imformat1)%           kld = pdfbcalc_imagekld(savename, sdir, image1, image2, imformat1, %                       imformat2)% Inputs:   model1      - first Hidden Markov Tree Model%           model2      - second Hidden Markov Tree Model%           image1      - first image file name%           image2      - second image file name%           imformat1   - format of the first image file%           imformat2   - format of the second image file%           savename    - filename to save the model of image1%                       - set to '' if no save desired%           sdir        - full pathname to save the model 1 (also set to ''%                           if savename == '')% Output:   kld         - the Kullback Liebler distance between the trees%           kld2        - KLD estimation using Monte Carlo method%function [kld, kld2] = pdfbcalc_imagekld(savename, sdir, model1, model2, ...%    imf1, imf2)function [kld, kld2] = pdfbcalc_imagekld(savename, sdir, model1, model2, ...    imf1, imf2)% initialize the kldkld = 0;kld2 = 0;if nargin == 6    % this case is when the images are provided but not the models    image1 = model1;    image2 = model2;        % train the HMT models first    [model1, dummy] = pdfbtrainimagethmt(image1, imf1, '', 0.01);    [model2, dummy] = pdfbtrainimagethmt(image2, imf2, '', 0.01);elseif nargin == 5    % this case is when we have one model and one image, need to     % train a second model using the image provided    image1 = model1;        % train the HMT model    [model1, dummy] = pdfbtrainimagethmt(image1, imf1, '', 0.01);        %there is also the case for two models and no image when nargin==3    %in that case, no training is neededend;if strcmp(savename, '') ~= 1    file = sprintf('%s%s', sdir, savename);    save(file,'model1');end;N = 60;nlevel = model1{1}.nlevels;for k = 1:nlevel    levndir(k) = log2(length(model1{1}.stdv{k}));end;% treat each tree as independent and using chain rule of KLD for% independent variables, simply add up the distancesfor index = 1:length(model1)    minkld = 10000;    dbmodels = pdfbcreate_equiv_models(model1{index});    for mmm = 1:length(dbmodels)        tkld = pdfbcalc_KLD(nlevel, levndir, model2{index}, dbmodels{mmm});        if tkld < minkld            minkld = tkld;        end;    end;    kld = kld + minkld;end;% Also apply the Monte Carlo method to verify the KLD estimationfor index = 1:length(model1)    kld2 = kld2 + pdfbest_KLD(nlevel, levndir ,model2{index}, ...        model1{index}, N); end;

⌨️ 快捷键说明

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