Мой вопрос состоит из двух частей. Первый из них:
Как включить фон в качестве компонента в функцию bwconncomp
, поскольку его поведение по умолчанию не включает его.
Кроме того, и это другой мой вопрос, как я могу выбрать n-й по величине компонент на основе того, что я получаю, используя bwconncomp
.
В настоящее время я думал о чем-то подобном, но это не работает: P
function out = getComponent(im,n)
CC = bwconncomp(im,4);
%image is an binary image here
numPixels = cellfun(@numel,CC.PixelIdxList);
sortedPixels = sort(numPixels,'descend');
w = sortedPixels(n);
[largest, index] = find(numPixels==w);
im(CC.PixelIdxList{index}) = 0;
out = im;
Но это совсем не работает. Но я не слишком уверен, что делает CC.PixelIdxList{index}
, это просто изменение элементов в массиве. Я также нахожу это немного неопределенным, что именно PixelIdxList
.