在Matlab中,灰度图像是一个二维的矩阵,RGB彩色图像是一个三维的矩阵。
方差
度娘上是这样解释的:
**方差 (variance) **是在概率论和统计方差衡量随机变量或一组数据时离散程度的度量。概率论中方差用来度量随机变量和其数学期望(即均值)之间的偏离程度。统计中的方差(样本方差)是每个样本值与全体样本值的平均数之差的平方值的平均数。在许多实际问题中,研究方差即偏离程度有着重要意义。
这是它的数学公式:
其中:X为变量,μ为总体平均数,N为总体数量
中国的数学从娃娃抓起,所以对于“方差”应该不陌生。在高中数学的抽样计算、大学的概率论、硕士课程的多元统计分析中,随处可见“方差”的影子。
简单来说,方差是衡量源数据和期望值相差的度量值。
-
图像的方差
这里的图像,泛指普通的影像(只有R、G、B三个波段的彩色图像或者只有一个波段的活度图像)。先从简单入手~
图像的方差是计算每个像元的灰度值减去图像平均灰度值的平方和除以总的像素个数。其实就是将数学中常见的实际抽样问题变成了一张图像关于灰度值的方差问题。
-
计算图像方差的意义
图像的方差反应图像的高频部分的灰度值大小,这与图像的对比度有关。所以,如果图片对比度小,那方差就小;如果图片对比度很大,那方差就大;
-
图像方差越大越好还是越小越好?
在数学问题中,一般情况下,应该是越小越好,说明数据源离散度小,数据波动小,较为稳定。
在图像中,对比度越大使得人的视觉效果越好,更容易区分照片中的不同物体。但是也不是说越大越好,这里需要按照参考实际的效果。但切记,要与数学问题中的方差要有区分。
-
案例
随手百度一张拥有RGB的彩色图~
用的是matlab(函数多~规则简单)
软件是R2014a版的matlab
然后开始码代码~~~
clear all
clc;
K=imread('C:\Users\Administrator\Desktop\20120816145917_hzAUC.thumb.700_0.jpeg'); %载入真彩色图像
figure,imshow(K);
J=rgb2gray(K); %将彩色图转换为灰度图
figure,imshow(J);
I=double(J); %将uint8型转换为double型,否则不能计算统计量
avg=mean2(I); %求图像均值
[m,n]=size(I);
s=0;
for x=1:m
for y=1:n
s=s+(I(x,y)-avg)^2; %求得所有像素与均值的平方和。
end
end
%求图像的方差,这里有三种方法
a1=var(I(:)); %(1)利用var函数
a2=s/(m*n-1); %(2)利用方差公式
a3=(std2(I))^2; %(3)利用std2函数求得标准差,再平方即为方差,这里还可以求得标准差
在代码中显示了两张图。图1是原图,像这样:
第2张图是利用了rgb2gray函数的结果,将真彩色的3波段的图变成了单波段的灰度图。(友情提示:如果不是R、G、B的影像,像有些遥感影像,使用这个函数会报错~)
工作区的结果:
这个代码没有返回值,结果就是a1、a2、a3。双击打开看结果就可以了,自己使用的时候添加也可以~
嗯,第一次用简书的markdown,希望下次我还记得怎么用~
如果有人问关于遥感影像的方差计算,可以留言问,代码需要加一点点,也不难~
代码写起来容易,码字写一篇简书比较难
暑假不想做实验,不想看书,不想打游戏,不想看电视剧,不想看小说,不能睡觉的时候,噔噔噔码字码字码字<(˘˘)>(给自己掌声)
又分割线
天气炎热,吹空调盖好被子~
锻炼身体,呼吸新鲜空气~
怀挺~