matlab中如何计算一个区域的像素平均值

我很笨.越详细越好
重赏!!1
计算一个区域所有像素的灰度平均值

....

我写了一段程序,运行通过了,现在贴给你。

先把一副灰度图象myPicture.jpg图像放到你当前工作目录下,然后直接加载:

% 本程序的计算一副图象矩阵中左上角3*3个像素的平均值,你可以比猫画虎地按照需要改区域。

I=imread('myPicture.jpg'); %加载图像并存储在I变量
startX=1; % 看你选多大区域,这是起始点横坐标,可以改变它
startY=1; % 看你选多大区域,这是起始点纵坐标,可以改变它
endX=3; % 看你选多大区域,这是终止点横坐标,可以改变它
endY=3; % 看你选多大区域,这是终止点纵坐标,可以改变它

pixelSum=0; % 像素之和初始化为0
count= 0; % 记录像素区域个数,但也可以用以上坐标计算
for i=startX:endX
for j=startY:endY
pixelSum=pixelSum+int16(I(i,j)) %连加区域内各个像素
count=count+1;
end
end
average=pixelSum/count % 得到平均值

----------------------------
注释:
1。既然你说要计算灰度的平均值,那么加载的图像是灰度图像就可以直接计算。如果是彩色的,需要你自己转换成灰度的,然后再计算(你好像没提一定要这样,如果要,我再帖)。

2。如果你要计算其他形状的区域,比如圆形,或者图象中制定的物体所占的区域,那么需要加if 语句判断是否在区域内,然后进行相加计算。其他就都一样了。
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-05-25
一般是用移动窗口法。这种计算像素平均值的手段通常是用在均滑模糊上。

先设定窗口边长,假设正方形窗口为x。
然后让这个窗口按步长值为1来在图片区域左上到右下移动。每移动一格,就计算窗口中所有像素值加起来再除以x的平方。然后遍历全图。

一般会把均值重新给窗口中点值。本回答被提问者采纳
第2个回答  2008-05-12
一般是用移动窗口法。这种计算像素平均值的手段通常是用在均滑模糊上。

先设定窗口边长,假设正方形窗口为x。
然后让这个窗口按步长值为1来在图片区域左上到右下移动。每移动一格,就计算窗口中所有像素值加起来再除以x的平方。然后遍历全图。

一般会把均值重新给窗口中点值。

就是几重循环,很简单的。自己网上搜也可以。
第3个回答  2008-05-10
这题对我胃口。

一般是用移动窗口法。这种计算像素平均值的手段通常是用在均滑模糊上。

先设定窗口边长,假设正方形窗口为x。
然后让这个窗口按步长值为1来在图片区域左上到右下移动。每移动一格,就计算窗口中所有像素值加起来再除以x的平方。然后遍历全图。

一般会把均值重新给窗口中点值。

就是几重循环,很简单的。自己网上搜也可以。
第4个回答  2015-09-11
  a=randint(4,4,[1 2])%%标记图像矩阵
  a =
  2 2 2 2
  1 2 1 2
  2 1 2 1
  1 1 2 1
  b=rand(4,4)%%原图像矩阵
  b =
  0.9355 0.0579 0.1389 0.2722
  0.9169 0.3529 0.2028 0.1988
  0.4103 0.8132 0.1987 0.0153
  0.8936 0.0099 0.6038 0.7468
  >> n1=0;n2=0;sum1=0;sum2=0;%%初始化各个参数
  >> for i=1:size(a,1)
  for j=1:size(a,2)
  if a(i,j)==1
  sum1=sum1+b(i,j);%%累加第一个区域的各个像素值
  n1=n1+1;
  else
  sum2=sum2+b(i,j);%%累加第二个区域的各个像素值
  n2=n2+1;
  end
  end
  end
  >> mean1=sum1/n1%%第一个区域的像素平均值
  mean1 =
  0.5141
  >> mean22=sum2/n2%%第二个区域的像素平均值
  mean22 =
  0.3521

matlab中如何计算一个区域的像素平均值
本程序的计算一副图象矩阵中左上角3*3个像素的平均值,你可以比猫画虎地按照需要改区域。I=imread('myPicture.jpg'); %加载图像并存储在I变量 startX=1; % 看你选多大区域,这是起始点横坐标,可以改变它 startY=1; % 看你选多大区域,这是起始点纵坐标,可以改变它 endX=3; % 看你选多大...

如何用matlab计算图片某一区域的像素点平均值?
I1=I(1:m\/2,1:n\/2);I2=I(m\/2+1:m,n\/2+1:n);I3=I(1:m\/2,n\/2+1:n);I4=I(m\/2+1:m,1:n\/2);%%分块,如果闲这样麻烦,就用循环把快存入细胞矩阵cell中,然后对cell中的块进行求取平均值 I1_M=mean2(I1)I2_M=mean2(I2)I3_M=mean2(I3)I4_M=mean2(I4)%%求...

matlab平均值计算?
计算平均值的方法如下:>> dt = randint(10,2,[0 255]);dtmax = max(dt) % 最大值;dtmin = min(dt) % 最小值;dtmean = mean(dt) % 平均值;dtmax =214 220dtmin =5 38dtmean =124.5000 133.9000。M = mean(A) 返回沿数组中不同维的元素的平均值。如果A是一个向量,mea...

matlab 像素平均值
>> I3=I(1:m\/2,n\/2+1:n);>> I4=I(m\/2+1:m,1:n\/2);%%分块,如果闲这样麻烦,就用循环把快存入细胞矩阵cell中,然后对cell中的块进行求取平均值 >> I1_M=mean2(I1)I2_M=mean2(I2)I3_M=mean2(I3)I4_M=mean2(I4)%%求取各个块的像素平均值 I1_M = 148.2581 I2_M...

Matlab如何求一组数据平均值
>> for i=1:size(a,1)for j=1:size(a,2)if a(i,j)==1 sum1=sum1+b(i,j);%%累加第一个区域的各个像素值 n1=n1+1;else sum2=sum2+b(i,j);%%累加第二个区域的各个像素值 n2=n2+1;end end end >> mean1=sum1\/n1%%第一个区域的像素平均值 mean1 = 0.5141 >> mean22...

matlab中 如何求一个矢量的各分量平均值?
A是矩阵的话,可以这样。sum(A,1)\/size(A,1)每列求平均。sum(A,2)\/size(A,2)每行求平均

matlab中的mean函数是什么意思啊,如何使用
MATLAB中的mean函数是一个统计函数,用于计算指定数据的平均值。它可以对数组、矩阵或向量进行操作。当你有一个数据集,并希望了解数据的整体平均水平时,mean函数非常有用。2. 使用方法:基本语法:`M = mean`,其中A是你要计算平均值的数组或矩阵,M是返回的平均值。多个维度:如果你有一个多维数组...

matlab中的mean函数是什么意思啊,如何
在MATLAB中,mean函数是一个关键的统计计算工具,其主要作用是计算数组中元素的平均值或均值。具体使用方法如下:当你调用M = mean(A)时,函数会根据A的维度处理数据。如果A是一个向量,mean(A)会返回该向量所有元素的平均值。例如,对于向量A = [1 2 3; 3 3 6; 4 6 8; 4 7 7],mean(A...

怎样在matlab中编程计算平均值?
n=length(x(m));end 第二步,创建主函数,main.m。函数内容:function main( )clc,close allx=[23.5 45.67 12.1 6.4 58.9 98.4];[ave,n]=fun(x);fprintf('平均值为 %12.10f\\n',ave);fprintf('在平均值以下(包含平均值)的实数个数为 %d\\n',n)...

matlab中的mean函数是什么意思啊,如何使用
MATLAB中的mean函数用于计算数组或矩阵中元素的平均值。详细来说,mean函数的基本语法是M = mean(A),其中A是一个数组或矩阵,M是A中所有元素的平均值。如果A是一个向量,那么mean函数将返回A中所有元素的平均值;如果A是一个矩阵,那么mean函数将默认计算A每一列的平均值,并返回一个行向量,行...

相似回答