2016-09-25 2 views
1

Учитывая изображение img, я получаю подключенные компоненты в Matlab с bwconncomp. От возвращенных подключенных компонентов я могу получить максимальное значение для каждого компонента. Но как мне получить индекс максимального значения? Я хочу знать, где максимальное значение на самом деле происходит в изображении.Получение индексов максимального значения для каждого подключенного компонента

Вот псевдокод для того, что я до сих пор:

cc = bwconncomp(img) 
% iterate through the length(cc.PixelIdxList) 
     value(it) = max(cc.PixelIdxList{:,it}) 
     x(it) = ? 
     y(it) = ? 

Как получить x и y?

ответ

2

Как это:

ind(it) = max(cc.PixelIdxList{:,it}) 
[x(it),y(it)] = ind2sub(size(img),ind(it)) 

На самом деле PixelIdxList дает линейный индекс пикселя, а не его значение, и вы можете использовать ind2sub, чтобы преобразовать его индексировать индекс.

Чтобы получить значение типа сам:

value(it) = img(ind(it)); 
+0

Это идеальный вариант - именно то, что я искал. Спасибо! – user6664585

Смежные вопросы