Если у вас есть конечное количество цветов в вашем изображении, вы можете преобразовать его из 3D RGB-изображения в индексированное изображение, позвонив по номеру rgb2ind
:
myColMap; % this is your color map:
% it should have black as its first entry,
% white in second, red in third etc.
indImg = rgb2ind( I, myColMap ); % convert RGB image to indexed one
Чтобы найти самый «популярный» цвет в каждом патче (обратите внимание, что это не max
цвет, а mode
)
fun = @(block_Struct) mode( block_struct.data(:) )
J = blockproc( indImg, [r c], fun );
Обратите внимание, что размер патча [r c]
должен быть целым числом . Поэтому, если размер вашего изображения не делится на 240
(как в вашем примере), это может вызвать проблемы. Проверьте blockproc
параметры, чтобы помочь вам справиться с этим условием.