Skip to content

Instantly share code, notes, and snippets.

@seaslee
Created November 15, 2012 12:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save seaslee/4078376 to your computer and use it in GitHub Desktop.
Save seaslee/4078376 to your computer and use it in GitHub Desktop.
颜色特征提取,hsv颜色空间,使用颜色直方图,采用非均匀量化
%=============================
%颜色特征提取,hsv颜色空间,使用颜色直方图,采用非均匀量化
%=============================
function fc=color(imgname)
%tic
img=imread(imgname);
hsv=rgb2hsv(img);
%将hsv特征进行非均匀的量化
[height,width,dim]=size(hsv);
len=256;
fc=zeros(1,len);
for i=1:height,
for j=1:width,
H=hsv(i,j,1)*360;
S=hsv(i,j,2);
V=hsv(i,j,3);
%非均匀化H
if H<=15 || H>345,
h=0;
elseif H>15 && H<=25,
h=1;
elseif H>25 && H<=45,
h=2;
elseif H>45 && H<=55,
h=3;
elseif H>55 && H<=80,
h=4;
elseif H>80 && H<=108,
h=5;
elseif H>108 && H<=140,
h=6;
elseif H >140 && H<=165,
h=7;
elseif H >165 && H<=190,
h=8;
elseif H>190 && H<=220,
h=9;
elseif H>220 && H<=255,
h=10;
elseif H>255 && H<=275,
h=11;
elseif H>275 && H<=290,
h=12;
elseif H>290 && H<=316,
h=13;
elseif H>316 && H<330,
h=14;
else
h=15;
end
%非均匀化S
if S >=0 && S<=0.15,
s=0;
elseif S>0.15 && S<=0.4,
s=1;
elseif S>0.4 && S<=0.75,
s=2;
else
s=3;
end
%非均匀化V
if V >=0 && V<=0.15,
v=0;
elseif V>0.15 && V<=0.4,
v=1;
elseif V>0.4 && V<=0.75,
v=2;
else
v=3;
end
%计算L
L=16*h+4*s+v+1;
fc(L)=fc(L)+1;
end
end
fc=fc/sum(fc);
%toc
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment