Как разделить изображение на перекрывающиеся блоки - PullRequest
0 голосов
/ 23 июня 2011

Я хочу разделить изображение PGM на перекрывающиеся блоки и выполнить преобразование DCT для каждого блока. Затем я хочу взять первый столбец каждой матрицы DCT и поместить их все в новую матрицу.

Я прочитал ответ на пост: Как разделить изображение на 64 блока в Matlab , но я не уверен, что он работает правильно Могу ли я использовать функцию blockproc для создания перекрывающегося блока, и если я могу, как я должен ее использовать?

Я бы предпочел ответ с петлями.

1 Ответ

2 голосов
/ 28 октября 2011
I=im2double(rgb2gray(imread('yourimage.png'))); %select channels separation

%%%for non-overlapping blocks

fun = @(block_struct) dct2(block_struct.data);

imageY =(blockproc(I,[8 8],fun));

BY=im2col(imageY,[8 8],'distinct');

FinalOP=BY(1:8,:);

%dct-8x8 ,if you want u can choose [64 64].
%you need the first column of dct?.so ,i.e 8 values of dct in this case.

для перекрывающихся блоков: используйте 'sliding', но у вас проблема с памятью.тогда вы должны использовать свой собственный цикл for.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...