Я пытаюсь провести некоторый анализ изображений в Matlab. У меня есть изображение, которое я сначала конвертирую в двоичное изображение с использованием порога, а затем использую bwlabel
для получения больших двоичных объектов изображения. Затем я нахожу индексы первого BLOB и пытаюсь показать только значения RGB этого BLOB I(row,column,:)
. Однако это, очевидно, не работает, и я не знаю, как проиндексировать исходное изображение и получить соответствующие значения RGB на основе данных строки, столбца в двоичном изображении. Я полагаю, что я мог бы использовать цикл for, но изображение имеет размер 4032 x 3024, и я хочу выполнить такую обработку для многих изображений.
I = imread('someimg.jpg');
Ired = I(:,:,1);
Igreen = I(:,:,2);
Iblue = I(:,:,3);
% threshold
IBinary = Ired > 200 & Igreen > 150 & Iblue > 50;
IBinary = imopen(ISigns,strel('square',9));
% get labbelled BLOBs
IBinaryLabelled = bwlabel(IBinary,8);
% find index of the first label image
[row,column] = find(IBinaryLabelled == 1);
% Get RGB of the BLOB with label 1
RGB = I(row,column,:)
Поэтому мой вопрос: как эффективно получить значения RGB на основе данных строки, столбца двоичного изображения?