В вашем примере фон и передний план изображения перевернуты по сравнению с тем, что, по вашему мнению, должно быть. По умолчанию для команд matlab предполагается, что пиксели с более высоким значением (белый) являются передним планом или интересующими элементами, а пиксели с более низким значением (черный) - это фон. Поэтому, когда вы запускаете свой пример кода, объект CC
содержит только 1 объект («фон», который синего цвета на вашем изображении):
CC =
struct with fields:
Connectivity: 8
ImageSize: [256 256]
NumObjects: 1
PixelIdxList: {[43341×1 double]}
Любой простой способ исправить это - просто инвертировать ваш очистил изображение командой imcomplement
. Добавьте эту строку в ваш код:
% invert the image so that the background is black
rem = imcomplement(rem);
Теперь структура CC
содержит 62 идентифицированных объекта:
CC =
struct with fields:
Connectivity: 8
ImageSize: [256 256]
NumObjects: 62
PixelIdxList: {1×62 cell}
И вы получите это изображение:
Если вы хотите изменить цвета, используемые для элементов, посмотрите на свойство colormap
команды label2rgb
.