在颜色特征方面,为减小运算量,采用颜色矩作为检索的特征,分别提取被检测图像和数据库中图像的一、二、三阶矩。由于HSV颜色空间的色调、饱和度、明度与人眼对颜色的主观认识相对比较符合,与其他颜色空间相比HSV空间能更好的反映人类对颜色的感知,所以本文采用HSV颜色空间下的颜色矩作为颜色特征。使用曼哈顿距离进行颜色矩相似度度量。
颜色信息集中在图像颜色的低阶矩中,主要是每种颜色分量的一阶矩(均值)、二阶矩(方差)、三阶矩(斜度),可以有效地表示图像中的颜色分布。三个颜色矩的数学定义如下:
其中表示像素的颜色值为的概率,为图像中像素点的个数。
function [ HSV_Mean , HSV_Sig , HSV_3 ] = hsvfeature( X )
RGB = X ;
HSV = rgb2hsv(RGB);
H = HSV(:,:,1);
S = HSV(:,:,2);
V = HSV(:,:,3);
%HSV空间低阶矩特征(均值/方差和三阶矩)提取
%求H,S,V的均值,并存放在HSV_Mean中.
[m,n] = size(H) ;
N=m*n;
h_mean = mean2( H ) ;
s_mean = mean2( S ) ;
v_mean = mean2( V ) ;
HSV_Mean = [ h_mean , s_mean , v_mean ] ;
h_sig = sqrt(sum(sum((H-h_mean).^2))/N);
s_sig =sqrt(sum(sum((S-s_mean).^2))/N) ;
v_sig = sqrt(sum(sum((V-v_mean).^2))/N);
HSV_Sig = [ h_sig , s_sig , v_sig ] ;
%求方差和三阶矩
h_3_temp = 0 ;
s_3_temp = 0 ;
v_3_temp = 0 ;
for i=1:m
for j=1:n
h_3_temp = h_3_temp + (H(i,j)-h_mean)^3 ;
s_3_temp = s_3_temp + (S(i,j)-s_mean)^3 ;
v_3_temp = v_3_temp + (V(i,j)-v_mean)^3 ;
end
end
h_3 = (h_3_temp/(m*n))^1/3 ;
s_3 = (s_3_temp/(m*n))^1/3 ;
v_3 = v_3_temp/(m*n)^1/3 ;
HSV_3 = [ h_3 , s_3 , v_3 ] ;
end