本文介绍了如何用矢量化计算图像块的方差的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个560 * 560 * 3的图像文件,我想将图像分成许多小的8 * 8补丁,然后计算每个补丁的方差。什么是使用Matlab或Octave计算每个图像块的方差的矢量化方法?
I have a 560*560*3 image file, I want to divide the image into many small 8*8 patches, then calculate variance of each patch. What is a vectorized way to calculate variance of each image patch with Matlab or Octave?
推荐答案
您可以使用 nfilter
功能:
fun = @var;
B = nlfilter(A, [8 8], fun);
顺便说一句,如果你想要3x3图像补丁,你可以使用 stdfilt
。剩下的就是在图像上应用一个正方形:
By the way, if you wanted 3x3 image patches, you could use stdfilt
function . All that is left is to apply a square on the image:
s = stdfilt(im);
s = s.*s;
这篇关于如何用矢量化计算图像块的方差的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!