Blockproc для усреднения изображения - PullRequest
0 голосов
/ 22 октября 2018

Я пытаюсь усреднить значения блока MxN в изображении и заменить этот блок матрицей MxN со средним значением.Используя blockproc, мой код выглядит следующим образом:

a = imread('image.jpg');
fun = @(x) mean(x)*ones(size(x));
b = blockproc(a, [M N], fun);

Тем не менее, я продолжаю генерировать изображения, которые меньше по размеру, чем оригинал (который, как я думал, можно обойти, если использовать их (size (x))).Кроме того, сгенерированное изображение пустое.Любые советы о том, в чем я ошибаюсь?

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

В документации упоминается, что вы должны использовать частичное заполнение:

b = blockproc(a, [M N], ...
    @(block_struct) mean(block_struct.data(:)) * ones(block_struct.blockSize), ...
    'PadPartialBlocks',true);
0 голосов
/ 22 октября 2018

используйте mean2 для матрицы.сменить веселье на пример на

fun = @(block_struct) ...
mean2(block_struct.data) * ones(size(block_struct.data));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...