对于下边的程序,它的功能是对读入的图像随机的选取1000对像素点,然后对像素点进行相关性分析:
clear all;
a=imread('lenac.bmp');
for k=1:1000
i=fix(rand*250);
j=fix(rand*250);
x(k)=a(i+1,j+1);
y(k)=a(i+2,j+1);
end
sum=0.0;
for i=1:1000
sum=sum+x(i);
end
ex=sum/1000;
sum=0.0;
for i=1:1000
sum=sum+y(i);
end
ey=sum/1000;
sum=0.0;
for i=1:1000
sum=sum+x(i)*x(i);
end
ex2=sum/1000;
sum=0.0;
for i=1:1000
sum=sum+y(i)*y(i);
end
ey2=sum/1000;
dx=ex2-ex*ex;
dy=ey2-ey*ey;
sum=0.0;
for i=1:1000
sum=sum+x(i)*y(i);
end
exy=sum/1000;
cov=exy-ex*ey;
xg=cov/(sqrt(dx)*sqrt(dy))
这里有两个错误:首先系统会提示:sqrt使用错误,原因是dx和dy是u