图像的颜色特征是很重要的,其中颜色矩也是很重要的一部分。(还有一个关于图像颜色特征的,对于image color写的比较全面)。还有,我要强调一下,本blog上的链接都是Google学术上的,要是进不去,需要用的哦!
颜色矩是一种简单有效的颜色特征表示方法,有一阶矩(均值,mean)、二阶矩(方差,viarance)和三阶矩(斜度,skewness)等,由于颜色信息主要分布于低阶矩中,所以用一阶矩,二阶矩和三阶矩足以表达图像的颜色分布,颜色矩已证明可有效地表示图像中的颜色分布,该方法的优点在于:不需要颜色空间量化,特征向量维数低;但实验发现该方法的检索效率比较低,因而在实际应用中往往用来过滤图像以缩小检索范围。
color moments的定义都在上面的链接里。下面是我今天上午写的程序,欢迎指点,,,,
function [s]=colormoment(img1,img2)
% img1=imread('yuan.jpg');R=img1(:,:,1);G=img1(:,:,2);B=img1(:,:,3);% Extract Statistical features% 1] MEANmeanR=mean2(R);meanG=mean2(G);meanB=mean2(B);% 2] Standard DeviationstdR=std2(R);stdG=std2(G);stdB=std2(B);% 3] SkewnessskeR=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] MEANmeanR=mean2(R);meanG=mean2(G);meanB=mean2(B);% 2] Standard DeviationstdR=std2(R);stdG=std2(G);stdB=std2(B);% 3] SkewnessskeR=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,不写了,将就看吧!