www.gusucode.com > IPCV_Eval_Kit_R2019a_0ce6858工具箱matlab程序源码 > IPCV_Eval_Kit_R2019a_0ce6858/code/demo_files/I5_04_6_myHOGDigitClassification_Kmean_R2014b_short.m
%% HOG (Histogram of Oriented Gradient) 摿挜検 偲 % k暯嬒丗k-Means Clustering 傪巊偭偨丄庤彂偒悢帤偺暘椶 clear;clc;close all;imtool close all % 庤彂偒悢帤夋憸乮12枃x10暥帤庬乯傊偺愨懳僷僗傪愝掕 pathData = [toolboxdir('vision'), '\visiondata\digits\handwritten'] trainSet = imageSet(pathData, 'recursive'); %% 庤彂偒悢帤夋憸傪儌儞僞乕僕儏昞帵 (12枃 x 10暥帤庬) figure;montage([trainSet.ImageLocation], 'Size', [10,12]); %% 4x4偺僙儖僒僀僘傪巊梡 (324師尦儀僋僩儖) cellSize = [4 4]; hogFeatureSize = 324; % length(hog_4x4) %% k暯嬒僋儔僗僞儕儞僌 % 10暥帤暘偺trainingFeatures 傪奿擺偡傞攝楍傪偁傜偐偠傔嶌惢 trainingFeatures = zeros(10*12,hogFeatureSize, 'single'); % HOG摿挜検傪拪弌 for digit = 1:10 % 1=>暥帤'0' for i = 1:12 % 奺庤彂偒悢帤偛偲偵12枃偺僩儗乕僯儞僌梡夋憸 img = read(trainSet(digit), i); %僩儗乕僯儞僌夋憸偺撉崬傒 img = im2bw(img,graythresh(img)); % 擇抣壔 trainingFeatures((digit-1)*12+i,:) = extractHOGFeatures(img,'CellSize',cellSize); end end % K暯嬒僋儔僗僞儕儞僌偺幚峴 result = kmeans(trainingFeatures, 10) %10屄偺僌儖乕僾偵暘椶 %% 10屄偺僋儔僗僞枅偵丄寢壥偺昞帵 figure; Ir = []; for k = 1:10 for digit = 0:9 for i = 1:12 % 奺悢帤偛偲偵12枃偺庤彂偒暥帤 if result((digit)*12+i) == k img = read(trainSet(digit+1), i); Ir = [Ir img]; end end end subplot(10,1,k); imshow(Ir); Ir = []; end %% 廔椆 %% 暿宍幃偺寢壥昞帵 Ir = zeros([16,16,3,120], 'uint8'); % 寢壥傪奿擺偡傞攝楍 for digit = 0:9 for i = 1:12 % 奺悢帤偛偲偵12枃偺庤彂偒暥帤 img = read(trainSet(digit+1), i); Ir(:,:,:,(digit)*12+i) = insertText(img,[6 4],char(64+result((digit)*12+i)),'FontSize',10,'TextColor','blue','BoxOpacity',0.4); end end % 昞帵 figure;montage(Ir, 'Size', [10,12]); %% Copyright 2013-2014 The MathWorks, Inc. % 夋憸僨乕僞僙僢僩 % 僩儗乕僯儞僌夋憸丗insertText娭悢偱帺摦嶌惉 (廃埻偵暿偺悢帤桳傝) % 僥僗僩夋憸丗庤彂偒偺夋憸傪巊梡