【发布时间】:2016-07-06 14:28:09
【问题描述】:
如果我有这个尺寸为 240x180 的图像,并且我想使用 Matlab 从原始图像中找到每个子图像 (20x20) 的平均绝对偏差 (MAD),所以我必须在最后提取 108 个结果,我知道MAD 的概念是通过为每个 20x20 子像素求均值,然后求出每个像素与计算均值之差的绝对值之和。
我开始用这个暗淡(20x20)将图像(240x180)划分为子图像,我必须有108个子图像但结果只包含84个块我不知道为什么,你可以看看到以下代码:
>> I = imread('myimage-path')
>> %the size of image 180x240
>> [r,c] = size(I);
>> bs = 20; % size of block
>> nsb = (r/bs) * (c/bs); % total number of block ( 108 block )
>> %Dividong the image into 20x20 block
>> kk=0;
>> for i=1:(r/bs)
for j=1:(c/bs)
Block(:,:,kk+j)=I((bs*(i-1)+1:bs*(i-1)+bs),(bs*(j-1)+1:bs* (j-1)+bs));
end
kk=kk+(r/bs);
end
然后我定义了一个空数组来存储这个数组中的所有 108 个块,以完成我在这些块上的工作
>> allBlocks = [[],[],[]]
>> for h=1:84
allBlocks(:,:,h) = Block(:,:,h);
end
>> size(allBlocks)
>> % result 20 20 84
【问题讨论】:
标签: matlab image-processing mean image-recognition