do_bag_of_words.m

来自「phow is the code for extracting pyramid 」· M 代码 · 共 51 行

M
51
字号
function do_bag_of_words(par)

nom = sprintf('%sVocabulary%d_%d.mat',par.directoriVocabulary,par.VSize,par.BW);
load(nom);

comanda = sprintf('mkdir %s',par.directoriBoW);
unix(comanda);

path = sprintf('%s*.jpg',par.directoriImatges);
imatges = dir(path);
                
for index=1:size(imatges,1)
    s = sprintf('%s%s',par.directoriImatges,imatges(index).name);
    I = imread(s);
    if par.BW==0 && size(I,3)==3, I = rgb2gray(I); end    
    
    fv = [];
    pos = [];
    if size(I,3)<3        
        if par.BW == 0, 
            file = sprintf('%s/%s.sift',par.directoriSift,imatges(index).name); 
            fv = llegirFitxer(file)';
            pos = llegirFitxer_xy(file)';                    
        end
        if par.BW == 1, 
            file = sprintf('%s/%s.V.sift',par.directoriSift,imatges(index).name); 
            fv = llegirFitxer(file)';
            pos = llegirFitxer_xy(file)';                    
            h = zeros(128,size(fv,2));                        
            fv = [fv;h;h];
        end        
    end
    if size(I,3)==3 && par.BW == 1
        file = sprintf('%s%s.H.sift',par.directoriSift,imatges(index).name);
        fv = llegirFitxer(file)';
        pos = llegirFitxer_xy(file)';
        
        file = sprintf('%s%s.S.sift',par.directoriSift,imatges(index).name);
        fv = [fv;llegirFitxer(file)'];
        pos = [pos;llegirFitxer_xy(file)'];
        
        file = sprintf('%s%s.V.sift',par.directoriSift,imatges(index).name);
        fv = [fv;llegirFitxer(file)'];
        pos = [pos;llegirFitxer_xy(file)'];
    end
    wf = bag_of_words(fv,pos,V,size(I,1),size(I,2),par);
    file = sprintf('%s%s.mat',par.directoriBoW,imatges(index).name);
    save(file,'wf');
end

⌨️ 快捷键说明

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