qyhhhh 发表于 2010-1-6 20:33

求助 这样求图像的局部均值和局部方差对吗?

我想求图像的局部均值和局部方差,我先选定模板大小,然后将模板在图像上依次滑动,每滑动一次求出该模板中心像素对应的均值和方差,我这样编程对吗?
I=imread('banare.bmp');
nhood=;
localmean=filter2(ones(nhood),I)/prod(nhood);
localvar=filter2(ones(nhood),(I-localmean).^2)/prod(nhood);
请高人指点!

maigicku 发表于 2010-1-7 11:11

不明白LZ为什么要用filter2,局部均值是不是一个块的像素均值?LZ想用均值滤波?

qyhhhh 发表于 2010-1-7 22:00

回复 沙发 maigicku 的帖子

我不是想用均值滤波,就像你说的我想求的局部均值和方差就是一个块的像素均值和方差。

qyhhhh 发表于 2010-1-7 22:06

回复 沙发 maigicku 的帖子

这是用for语句写的
g=imread('20100104150345.bmp');
I=g(:,:,1);
=size(I);
localmean1=ones(m,n);
localvar1=ones(m,n);
z=1;
for k=z+1:m-z
    for l=z+1:n-z
      localmean1(k,l)=mean2(I(k-z:k+z,l-z:l+z));
      localvar1(k,l)=mean2((I(k-z:k+z,l-z:l+z)-localmean1(k,l)).^2);
    end
end
有哪个函数可以实现这个功能吗?

friendchj 发表于 2010-1-8 04:04

可以用块处理函数实现:
如:模板大小为:,则用:
blkproc(I,,,@mean2)求均值.
具体help blkproc

maigicku 发表于 2010-1-8 08:51

LS正解。。计算均值和方差只不过blkproc里面的函数不同而已。。。

qyhhhh 发表于 2010-1-8 14:46

回复 5楼 friendchj 的帖子

非常感谢!

jueping 发表于 2011-3-16 10:20

不能直接用var和mean求吗?

zhenzhy 发表于 2011-5-13 20:51

B = blkproc(A,,fun)
将函数fun应用到图像A的每一个m-by-n的图像块中,如果需要的,则用0填充图像A。函数fun 接受一个m-by-n的矩阵x,输出一个矩阵、向量或者标量y。 www.iLoveMatlab.cn
y = fun(x)
blkproc函数不期望输出y和输入x的维数一样,然而,只要输出y和输入x的尺寸相同,则B和图像A的尺寸相同。
页: [1]
查看完整版本: 求助 这样求图像的局部均值和局部方差对吗?