www.gusucode.com > IPCV_Eval_Kit_R2019a_0ce6858工具箱matlab程序源码 > IPCV_Eval_Kit_R2019a_0ce6858/code/demo_files/I5_05_2_ImageRetrieval_med.m
%% Bag-of-Visual-Words傪梡偄偨椶帡夋憸専嶕 clc;clear;close all;imtool close all; %% 夋憸僨乕僞偺弨旛 % 僇僥僑儕枅偵夋憸僼傽僀儖柤傪丄Image Set 僋儔僗傊奿擺丒夋憸椺昞帵 % 夋憸偺僜乕僗丗 http://www.cdc.gov/dpdx/index.html (Centers for Disease Control and Prevention) if ~exist('classifyBloodSmearImages','dir') websave('classifyBloodSmearImages.zip','https://jp.mathworks.com/matlabcentral/mlc-downloads/downloads/submissions/66881/versions/3/download/zip') unzip('classifyBloodSmearImages.zip'); end imgFolder = 'classifyBloodSmearImages\BloodSmearImages'; % 夋憸傊偺僷僗偺巜掕 %% 夋憸僨乕僞偺撉傒崬傒 % 僼僅儖僟傪巜掕偡傞偙偲偱丄夋憸僼傽僀儖柤傪Image Set 僋儔僗傊奿擺 (48枃) % 夋憸偺僜乕僗丗 http://www.cdc.gov/dpdx/index.html (Centers for Disease Control and Prevention) bImageDS = imageDatastore(imgFolder,... 'IncludeSubfolders',true,... 'FileExtensions',{'.jpg','.tif','.png'}) % 48枃偺僨乕僞 % 昞帵 figure;montage([bImageDS.Files], 'Size',[6 8]); truesize; %% Visual Words (嬊強揑側柾條)偺廤崌傪丄惗惉乮僨僼僅儖僩愝掕丗500屄乯 % 慡僇僥僑儕乕偵懳偟丄廲墶偦傟偧傟8僺僋僙儖娫妘偺僌儕僢僪忋偺揰偱丄奺[32 64 96 128]偺4偮偺椞堟僒僀僘偱摿挜検傪拪弌 % 儚乕僪悢 2000屄偵丄K-means偱僌儖乕僾壔 % Parallel Computing Toolbox 僆僾僔儑儞偁傟偽丄暲楍寁嶼傕壜擻 (愝掕儊僯儏乕撪偺Computer Vision System Toolbox愝掕撪偱愝掕) % 僇僗僞儉偺摿挜検拪弌娭悢偺巜掕傕壜擻 (R2015a) % load('I5_05_Parasitology_img\I5_05_2_bag_med.mat'); % 偁傜偐偠傔惗惉偟偨傕偺傪巊偆応崌 bBag = bagOfFeatures(bImageDS, 'VocabularySize', 2000, 'Upright',false) %% 慡偰偺夋憸偵丄専嶕梡偺僀儞僨僢僋僗傪晅偗傞 % 奺夋憸偐傜摿挜検傪拪弌偟丄VisualWords偵懳墳偯偗傞: invertedImageIndex 僋儔僗 bImageIndex = indexImages(bImageDS, bBag); %% Visual Words偑尰傟偨夋憸偺妱崌 figure; plot(bImageIndex.WordFrequency); %% 弌尰昿搙偺彫偝側傕偺偐傜弴偵暲傋傞 plot(sort(bImageIndex.WordFrequency)); shg; %% 偳偺夋憸偵傕娷傑傟嬫暿偵栶偵棫偨側偄傕偺偼彍偔 bImageIndex.WordFrequencyRange = [0.01 0.85] %default:[0.01 0.9] %% 椶帡夋憸偺専嶕 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% queryImage = readimage(bImageDS, 19); % 専嶕懳徾夋憸偺撉崬傒 figure; imshow(queryImage); % 夋憸偺昞帵 %% Visual Words偺僸僗僩僌儔儉傪昞帵 figure; histogram(bImageIndex.ImageWords(19).WordIndex, [1:bBag.VocabularySize]) %% 僗僐傾傪晅偗丄帡偰偄傞傕偺忋埵16屄偺昞帵 [imageIDs, scores] = retrieveImages(queryImage, bImageIndex); % 寢壥偺昞帵 for i = 1:9 % 忋埵9屄偺昞帵 I = readimage(bImageDS, imageIDs(i)); % 夋憸偺撉崬傒 Ir1(:,:,:,i) = insertText(I, [1 1], num2str(scores(i)), 'FontSize',32); % 4師尦曽岦偵偮側偘傞 end figure; montage(Ir1); truesize; %% 暿偺夋憸偺専嶕 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% queryImage = readimage(bImageDS, 48); % 専嶕懳徾夋憸 figure; imshow(queryImage); %% 帡偰偄傞傕偺忋埵9屄偺拪弌丒昞帵 [imageIDs, scores] = retrieveImages(queryImage, bImageIndex); % 寢壥偺昞帵 for i = 1:9 I = readimage(bImageDS, imageIDs(i)); % 夋憸偺撉崬傒 Ir2(:,:,:,i) = insertText(I, [1 1], num2str(scores(i)), 'FontSize',32); % 4師尦曽岦偵偮側偘傞 end figure; montage(Ir2); truesize; %% Copyright 2015 The MathWorks, Inc.