MATLAB R2014a代码-求图像均值和标准差

本文介绍了在MATLAB R2014a中如何利用sum函数、conv2函数和imfilter函数计算图像的均值和标准差。详细讲述了各个函数的使用方法,包括二维卷积、补零处理和边界处理等关键步骤。通过代码示例展示了如何在实际操作中避免常见问题。
摘要由CSDN通过智能技术生成

如何求图像均值和标准差

从去年开始学习Matlab,主要用它来处理图像,虽然也写了一些代码,但大多还是得依靠众多博友和度娘的帮助,然后现在得学习怎么融会贯通地使用写出自己的代码,希望通过发博客互相沟通交流能让自己的进步更快一点(●’◡’●)。
今天要做的是类似均值滤波,通过使用5×5的滑动窗来求取该滑动窗内25个像素的均值和标准差。主要涉及到sum函数、二维矩阵卷积函数conv2、ones函数、imfilter函数、标准差的计算原理,以及在这个过程中遇到的一些问题。

1、均值

1.1 sum函数

利用滑动窗和sum函数求和,边界两行两列的像素不参与计算,维持原值,也就是说,从第三行第三列的像素值开始计算。要同时进行行和列的计算,也就是以某一像素点M(i,j)为中心,对它周围及自身的像素求和,如下所示,同时写出了sum函数的示例。此外,sum函数有时会遇到“下标索引必须为正整数类型或逻辑类型”的问题,这个时候就要检查设定的下标的起始和结尾的值。

5×5滑动窗 Matlab代码示例
1 1 1 1 1 a=sum(sum(M(i-2:i+2,j-2:j+2)));%滑动窗求和,N=5,则半径r=2
1 1 1 1 1 a=sum(x);%对矩阵每一列求和,生成行向量
1 1 M(i,j) 1 1 a=sum(x,1);%对矩阵每一列求和,生成行向量
1 1 1 1 1 a=sum(x,2);%对矩阵每一行求和,生成列向量
1 1 1 1 1 a=sum(x(: ));%对矩阵内所有元素求和,生成一个值

总的Matlab代码如下:

img=imread('LS.png');%读入图像
[h, w]=size(img);
mean=zeros(h, w);
for i=1:h
	for j=1:w
		if i>=3 & i<=(h-2) & j>=3 & j<=(w-2) %不对边界进行处理
		mean(
  • 4
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值