Показать изображение на основе массива [row, column] BLOB - PullRequest
0 голосов
/ 03 ноября 2018

Я пытаюсь провести некоторый анализ изображений в 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 на основе данных строки, столбца двоичного изображения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...