Мне нужно составить матрицу, строки которой кодируют квадратик 100х100. Я считываю изображение размера 1200х1920.
Вот скрипт:
Код:
I = rgb2gray(imread('1.jpg'));
n = size(I, 1);
m = size(I, 2);
N = uint8(n / 100);
M = uint8(m / 100);
A = zeros(N*M, 10000);
num = 0;
for i = 1:N
starti = (i - 1) * 100 + 1;
for j = 1:M
startj = (j - 1) * 100 + 1;
num = num + 1;
Block = I(starti:i*100, startj:j*100);
for k = 1:100
startk = (k - 1) * 100 + 1;
A(num, startk:k*100) = Block(k, 1:100);
end
end
end
При
у матрицы Block размерность 100х55 (должна быть 100х100) и при попытке считать Block(k, k*100) скрипт падает с ошибкой "Index exceeds matrix dimensions". Никак не могу понять почему в Block считывается матрица не той размерности.
-- 14.03.2016, 12:14 --Проблема решена. После замены
Код:
N = uint8(n / 100);
M = uint8(m / 100);
на
Код:
N = fix(n / 100);
M = fix(m / 100);
все заработало.
Можно закрывать тему.