图像的颜色特征是很重要的,其中颜色矩也是很重要的一部分。(还有一个关于图像颜色特征的review,对于image color写的比较全面)。还有,我要强调一下,本blog上的链接都是Google学术上的,要是进不去,需要用FQ软件的哦!

颜色矩是一种简单有效的颜色特征表示方法,有一阶矩(均值,mean)、二阶矩(方差,viarance)和三阶矩(斜度,skewness)等,由于颜色信息主要分布于低阶矩中,所以用一阶矩,二阶矩和三阶矩足以表达图像的颜色分布,颜色矩已证明可有效地表示图像中的颜色分布,该方法的优点在于:不需要颜色空间量化,特征向量维数低;但实验发现该方法的检索效率比较低,因而在实际应用中往往用来过滤图像以缩小检索范围。

http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/AV0405/KEEN/av_as2_nkeen.pdf

color moments的定义都在上面的链接里。下面是我今天上午写的程序,欢迎指点,,,,

function [s]=colormoment(img1,img2)
% img1=imread('yuan.jpg');
R=img1(:,:,1);
G=img1(:,:,2);
B=img1(:,:,3);
% Extract Statistical features
% 1] MEAN
meanR=mean2(R);
meanG=mean2(G);
meanB=mean2(B);
% 2] Standard Deviation
stdR=std2(R);
stdG=std2(G);
stdB=std2(B);
% 3] Skewness
skeR=mean(skewness(double(R)));
skeG=mean(skewness(double(G)));
skeB=mean(skewness(double(B)));

A1=[meanR meanG meanB;stdR stdG stdB;skeR skeG skeB];
%%----------------------------------------------------------------

%%----------------------------------------------------------------
% img2=imread('test1.jpg');
R=img2(:,:,1);
G=img2(:,:,2);
B=img2(:,:,3);
% Extract Statistical features
% 1] MEAN
meanR=mean2(R);
meanG=mean2(G);
meanB=mean2(B);
% 2] Standard Deviation
stdR=std2(R);
stdG=std2(G);
stdB=std2(B);
% 3] Skewness
skeR=mean(skewness(double(R)));
skeG=mean(skewness(double(G)));
skeB=mean(skewness(double(B)));
A2=[meanR meanG meanB;stdR stdG stdB;skeR skeG skeB];
%%----------------------------------------------------------------
w=[1 2 1;1 2 1;1 2 1];
s=0;
for i=1:3
A=w(i,1).*abs(A1(i,1)-A2(i,1))+w(i,2).*abs(A1(i,2)-A2(i,2))+w(i,3).*abs(A1(i,3)-A2(i,3));
s=A+s;
end

最后的部分有点乱,以后慢慢完善。时间比较紧缺,程序随手写,OK,不写了,将就看吧!

05-02 02:09