باسلام من میخوام تصویر به اندازه16*16بلوک بندی کنم ولی کدی که نوشتم خطامیده فقط به تصاویر خاص مثل تصویر لنا اجرا میشه برای تصویر دلخواه اجرا نمیشه کد و خطا را در اینجا قرار میدهم لطفا راهنمایی کنید ممنون میشم زودجواب بدهید.

کد:



clc
clear
close all
img = imread('1.png');

figure;
subplot(221)
imshow(img)
g = mean2(img);

k=16;
[h,w]=size(img);

n = 1;
for i=1:k:h
for j=1:k:w
imblock=img(i:i+k-1,j:j+k-1);
if nnz(imblock>g)>0
S(n) = sum(imblock(imblock>g));
else
S(n) = k * g;
end
n = n+1;
end
end
subplot(2,2,2)
imshow(reshape(S,h/16,w/16)',[],'InitialMagnification','fit')

خطا:

Index exceeds matrix dimensions