一、求均值
% 求一副灰度圖像的均值 close all; clear; clc; i=imread('d:/lena.jpg'); %載入真彩色圖像 i=rgb2gray(i); %轉換為灰度圖 i=double(i); %將uint8型轉換為double型,否則不能計算統計量 % avg1=mean(i,1); %列向量均值 % avg2=mean(i,2); %行向量均值 % avg3=mean(i); %列向量均值 [m,n]=size(i); s=0; for x=1:m for y=1:n s=s+i(x,y); %求像素值總和 s end end %所有像素均值 a1=mean(mean(i)); %第一種方法:先計算列向量均值,再求總均值。 a2=mean2(i); %第二種方法:用函數mean2求總均值 a3=s/(m*n); %第三種方法:按公式計算,像素值總和除以像素個數。 a4=sum(sum(i))/(m*n); %第四種方法:也是按公式計算,但是用sum來求像素值總和。
二、求方差
% 求一副灰度圖像的方差 close all clear clc; i=imread('d:/lena.jpg'); %載入真彩色圖像 i=rgb2gray(i); %轉換為灰度圖 i=double(i); %將uint8型轉換為double型,否則不能計算統計量 % sq1=var(i,0,1); %列向量方差,第二個參數為0,表示方差公式分子下面是n-1,如果為1則是n % sq2=var(i,0,2); %行向量方差 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(:)); %第一種方法:利用函數var求得。 a2=s/(m*n-1); %第二種方法:利用方差公式求得 a3=(std2(i))^2; %第三種方法:利用std2求得標准差,再平方即為方差。