Как растрировать изображение в Matlab?

Мне нужно растрировать изображение в Matlab. У меня есть ч/б изображение, и я хочу разбить его на блоки 8x8 и получить среднее значение из каждого блока. Затем я хочу заменить блок новым блоком, состоящим из единиц и нулей, с количеством единиц, зависящим от среднего значения исходного блока.

Заранее спасибо!


person jonepatr    schedule 03.12.2010    source источник
comment
В чем вопрос ? Голосование за закрытие.   -  person High Performance Mark    schedule 03.12.2010
comment
Я вижу, как ты можешь делать то, что хочешь. Можете ли вы рассказать нам, что вы уже сделали, и с чем у вас возникла проблема?   -  person Jonas    schedule 03.12.2010


Ответы (1)


Это поможет вам начать. Это изображение с пониженной частотой дискретизации, где каждое значение находится между нулем и квадратом размера блока. Вы сами расширяете это целое число в подматрицу.

bs = 8
a = imread('trees.tif');
[r,c] = size(a);
d  = imresize(a,[round(r/bs), round(c/bs)]);


figure(1)
imshow(a)
figure(2)
imshow(d)

mv = max(d(:))

d = round(double(d)/double(mv)*bs*bs);

figure(3)
imagesc(d)
person MatlabDoug    schedule 03.12.2010