RGB颜色矩提取算法——Matlab

 

一、颜色矩公式

一阶颜色矩——均值,反映图像明暗程度

二阶颜色矩 ——标准差,反映图像颜色分布范围

  

三阶颜色矩 ——方差,反映图像颜色分布对称性

 


二、方法一:

firstMoment = mean(mean(tmpImage)); % 一阶颜色矩

difference = tmpImage(:,:,m) - firstMoment(1,1,m); %差分颜色矩

secondMoment = sqrt(mean(mean(difference.*difference))); % 二阶颜色矩

thirdMoment = nthroot(mean(mean(difference.*difference.*difference)),3); % 三阶颜色矩

To interpret

tmpImage –>101(rows)*101(columns)*3(layers) Matrix

第一次求均值(mean(tmpImage)):1*101*3

%均值mean函数,优先对列求均值

firstMoment –> 第二次求均值:1*1*3

difference –> 101*101*1

%点乘(矩阵乘法):[3*3*1].*[3*3*1] –> [3*3*1]

difference.*difference –> 101*101*1

%两次求均值是因为要求一个二维矩阵的矩阵

secondMoment –> 原理同上

thirdMoment –> 原理同上


三、方法二

firstMoment = mean(mean(tmpImage)); % 一阶颜色矩

difference = tmpImage(:,:,m) - firstMoment(1,1,m); %差分颜色矩

secondMoment = sqrt(sum(difference(:).*difference(:))/101/101)); % 二阶颜色矩

thirdMoment = nthroot(sum(difference(:).*difference(:).*difference(:))/101*101,3); % 三阶颜色矩

To interpret

difference(:) –>10201*1(columns)*1(layer)

%将其矩阵转换为n*1的列矩阵

difference(:).*difference(:) –> 10201*1*1

sum((difference(:).*difference(:))/101/101)) –> 1(sum value)*1*1

sum value/101/101 –> mean value

posted @ 2016-05-20 10:24  HsiehTengK`o  阅读(7854)  评论(4编辑  收藏  举报