Я пытаюсь разделить цветное изображение на 100 блоков равного размера в matlab, а затем сохранить максимальную информацию о цвете, присутствующую в поле в 2d массиве 10 * 10.Как сохранить информацию об изображении в массиве 2d в MATLAB?
Пример:
Если максимальный цвет присутствует в блоке
- черный, то он должен хранить 0
- белого затем 1,
- красный затем 2,
- ...
в соответствующей ячейке массива 2d.
У меня есть конечное количество цветов на моем изображении. Я прочитал статью о blockproc
, но я не смог ее реализовать.
Как это сделать?
EDIT: (код от комментариев)
I=imread('Untitled.png');
I = I(1:290,1:288,:);
[m n o] = size(I);
r = m/240;
c = n/240;
fun = @(block_struct) max(block_struct.data(:));
J = blockproc(I,[r c],fun);
imshow(J);
Покажите нам, что вы пробовали. – cyborg
Что вы называете максимальным цветом? –
то, что я сделал, приведен ниже. I = imread ('Untitled.png'); I = I (1: 290,1: 288, :); [m n o] = размер (I); r = m/240; c = n/240; fun = @ (block_struct) max (block_struct.data (:)); J = blockproc (I, [r c], забава); imshow (J); теперь проблема, с которой я сталкиваюсь, я теряю информацию о цвете в этом виде подхода .... я хочу 2 в J, если цвет красный соответствующий блок, 3, если он синий и так далее .... я делая это, потому что я хочу найти кратчайшее расстояние между двумя объектами изображения, так что путь не покрывает определенный цвет (скажем, путь не должен покрывать черную часть изображения). – Harshil