У меня есть такой индексный вектор, который отображает ячейки. Например (1 -> 310),(2 -> 910),....(1024 -> 67)
Индексы обратного отображения в matlab
Он отображает 8*8 cell
(например: 1-й ячейку) изображения на 8*8 cell
(например: триста десятые клетки).
У меня есть 1024 8*8 cells
, и я хочу отменить этот процесс, чтобы получить свои первые индексы.
Я имею в виду, после этого сопоставления Он переупорядочивается до основного порядка. (например: 310-я ячейка доходит до 1-го, а 910-я ячейка - до 2).
Любой может помочь?
Да, конечно, я пишу свою программу, например, у меня есть эти блоки изображения для изображения.
% dividing of main image to 8*8 blocks:
U = floor(M1/8);
V = floor(M2/8);
I_div = cell(U,V);
K = 1; L = 1;
for u = 1:U
for v = 1:V
I_div{u,v} = I2(K:K+7,L:L+7);
I_div_DCT{u,v} = dct2(I_div{u,v}); %%% the main blocks
L = L + 8;
end
K = K + 8;
L = 1;
end
a=reshape(I_div_DCT',[],1)';
b=cell(1,1024);
for i=1:1024
b(i)=a(index(i));
end
%%% индекс 1 * 1024 массива, что-то вроде этого:
%%% 1 2 3 4 5 6 7 8 ....
%%% 367 910 274 308 275 429 403 276 ....
, если первый блок изображения будет (1,1) = [8 * 8 двойной]; после реализации b (i) = a (index (i)) он переходит в 367-й блок [8 * 8], и, например, блок 787th [8 * 8] приходит в первый блок (простое сопоставление). Я хочу вернуть эти блоки в свои оригинальные вещи после реализации моих изменений!
Можете ли вы предоставить макет пример (возможно, с помощью '2x2' вместо' 8x8'), но с фактической до и после цифр, так что мы можем увидеть, что именно ты имеешь в виду? Вы можете отредактировать исходный вопрос, чтобы добавить такой пример. – Dan