Matlab 显著性检测模型性能度量线性相关系数 CC

% created: Zoya Bylinskii, Aug 2014

% This finds the linear correlation coefficient between two different 
% saliency maps (also called Pearson's linear coefficient).
% score=1 or -1 means the maps are correlated
% score=0 means the maps are completely uncorrelated

function score = CC(saliencyMap1, saliencyMap2)
% saliencyMap1 and saliencyMap2 are 2 real-valued matrices

map1 = im2double(imresize(saliencyMap1, size(saliencyMap2)));
map2 = im2double(saliencyMap2);
% map1=saliencyMap1;
% map2=saliencyMap2;

% normalize both maps
map1 = (map1 - mean(map1(:))) / std(map1(:)); 
map2 = (map2 - mean(map2(:))) / std(map2(:)); 

score = corr2(map2, map1);
function r = corr2(varargin)

[a,b] = ParseInputs(varargin{:});

a = a - mean2(a);
b = b - mean2(b);
r = sum(sum(a.*b))/sqrt(sum(sum(a.*a))*sum(sum(b.*b)));

%--------------------------------------------------------
function [A,B] = ParseInputs(varargin)

narginchk(2,2);

A = varargin{1};
B = varargin{2};

validateattributes(A, {'logical' 'numeric'}, {'real','2d'}, mfilename, 'A', 1);
validateattributes(B, {'logical' 'numeric'}, {'real','2d'}, mfilename, 'B', 2);

if any(size(A)~=size(B))
    error(message('images:corr2:notSameSize'))
end

if (~isa(A,'double'))
    A = double(A);
end

if (~isa(B,'double'))
    B = double(B);
end




关键代码:

a = a - mean2(a);
b = b - mean2(b);
r = sum(sum(a.*b))/sqrt(sum(sum(a.*a))*sum(sum(b.*b)));

可以用公式表示,图a,b的相关性大小,越大越相关:

方差 :

D(x) = \frac{1}{mn} \sum_{i=1}^m \sum_{j=1}^n (x_{ij} - u_x)^2

协方差:

cov(x,y) = \frac{1}{mn} \sum_{i=1}^m \sum_{j=1}^n (x_{ij}-u_x) (y_{ij}-u_y)

线性相关系数 CC:

CC = {\color{Red} \frac{cov(x, y)} {\sqrt{cov(x,x)} \sqrt{cov(y,y)}}} = \frac{cov(x, y)}{ \sqrt{D(x)} \sqrt{D(y)}}

其中,u为均值。即为:x 和 y 的方差,除以 x 的标准差与 y 的标准差之积,CC越大越相关。

1)如果 x 等于 y,由公式红色部分可知 CC = 1,最相关;

2)而当x 完全不等于 y,即 x 独立于 y,则由下面公式:

cov(x, y) = E(x y) - E(x) E(y)

其中E为期望,即均值。当 x 独立于 y,则 :E(x y) = E(x) E(y),所以cov(x, y)就为0,CC值为0,最不相关。

 

 

 

 

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.Q

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值