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

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

....
展开
 我来答
findzm
2008-05-21 · TA获得超过436个赞
知道小有建树答主
回答量:135
采纳率:0%
帮助的人:0
展开全部
我写了一段程序,运行通过了,现在贴给你。

先把一副灰度图象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 语句判断是否在区域内,然后进行相加计算。其他就都一样了。
_jacklu
2008-05-25
知道答主
回答量:1
采纳率:0%
帮助的人:0
展开全部
一般是用移动窗口法。这种计算像素平均值的手段通常是用在均滑模糊上。

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

一般会把均值重新给窗口中点值。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
1999XP
2008-05-12 · TA获得超过179个赞
知道答主
回答量:186
采纳率:0%
帮助的人:0
展开全部
一般是用移动窗口法。这种计算像素平均值的手段通常是用在均滑模糊上。

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

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

就是几重循环,很简单的。自己网上搜也可以。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6e7e9c5
2008-05-10 · TA获得超过2161个赞
知道大有可为答主
回答量:1220
采纳率:0%
帮助的人:1590万
展开全部
这题对我胃口。

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

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

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

就是几重循环,很简单的。自己网上搜也可以。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
糖糖寳寳
2015-09-11 · TA获得超过6.4万个赞
知道大有可为答主
回答量:1.8万
采纳率:92%
帮助的人:3986万
展开全部
  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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式