function vec = genFeatureVec(img) bins = 16; ncnls = 8; cnls = zeros(size(img,1), size(img,2),ncnls); cnls(:,:,1:3) = img; cnls(:,:,4:6) = rgb2ycbcr(img); hsv = rgb2hsv(img); cnls(:,:,7:8) = hsv(:,:,1:2); % Schmid scVec=[ 1,2; 1,4; 2,4; 1,6; 2,6; 3,6; 1,8; 2,8; 3,8; 1,10; 2,10; 3,10; 4,10]; gbVec = [ 0.3,0,4,2; 0.3,0,8,2; 0.4,0,4,1; 0.4,0,8,2; 0.3,pi/2,4,2; 0.3,pi/2,8,2; 0.4,pi/2,4,1; 0.4,pi/2,8,2;]; gb = length(gbVec); sc = length(scVec); vec=[]; for i = 1:sc for cnl = 1:ncnls filt = schmidFilter(scVec(i,1),scVec(i,2)); pos = real(sum(sum(filt.*(filt>0)))); neg = real(sum(sum(filt.*(filt<0)))); ss = (pos-neg)/bins; v = histcounts(imfilter(cnls(:,:,cnl), filt, 'symmetric'),(0:bins)*ss+neg); vec=cat(2,vec,v); end end for i = 1:gb for cnl = 1:ncnls filt = gaborFilter(gbVec(i,1),gbVec(i,2),gbVec(i,3),gbVec(i,4)); pos = real(sum(sum(filt.*(filt>0)))); neg = real(sum(sum(filt.*(filt<0)))); ss = (pos-neg)/bins; v = histcounts(real(imfilter(cnls(:,:,cnl), filt, 'symmetric')),(0:bins)*ss+neg); vec=cat(2,vec,v); end end