Перекрывающееся скользящее окно поверх изображения с помощью blockproc или im2col?

Я должен подать заявкуdct2 к маленьким окнам моего изображения, предпочтительно используя перекрывающееся окно.

Я обнаружил, что в Matlab есть две функции, которые могут сделать это возможнымblockproc а такжеim2col, У меня тоже проблемы с пониманием, и я был бы признателен за разъяснения.

blockproc может быть использован для реализации моей функции на скользящем окне с помощьюBorderSize а такжеTrimBorder аргументы.

B = blockproc(A,[64,64],fun,'BorderSize',[5,5], 'TrimBorder', 'false');

Я понимаю, что это создает блок[64 + 2*5, 64 + 2*5] и применяет функцию@fun на каждом блоке. Но так как я не могу войти в свою функцию@fun в отладке, чтобы проверить правильность работы, я не могу быть уверен, что это то, что мне нужно. Правильный ли мой код для того, что мне нужно? Я знаю, что получаю объединенный результат вB но это должно быть на перекрывающем скользящем блоке. Будет ли это достичь того, что мне нужно?

Второйim2col. im2col(A,[m n],block_type) разделит блок на m блоков по n и расположит их в столбцах, поэтому каждый столбец является блоком? Если да, то как контролируется перекрытие? И если каждый блок представляет собой столбец, могу ли я успешно применитьdct2 функция на каждом столбце? Потому что я сомневаюсь, что в качестве входных данных будут использоваться векторы?

Некоторые разъяснения будут с благодарностью.

Ответы на вопрос(1)

Ваш ответ на вопрос