Шаг 6: Сегментация ядер на основании отдельного изображения

Рассмотрим изображение, которое содержит синие объекты. Отметим, что они являются темно-синими и светло-синими. Используя значение 'L*' в цветовом пространстве L*a*b* можно отделить темно-синие объекты от светло-синих.

Напомним, что параметр 'L*' содержит значения интенсивностей для каждого цвета. Найдем кластеры, которые содержат синие объекты. Получим значения интенсивностей объектов в этом кластере и обработаем их пороговым методом с использованием функции im2bw.

Параметр cluster_center содержит среднее значение 'a*' и 'b*' для каждого кластера. Синий кластер имеет второе наибольшее значение cluster_center.

mean_cluster_val=zeros(3, 1);for k=1:nColors mean_cluster_val(k)=mean(cluster_center(k));end[mean_cluster_val,idx]=sort(mean_cluster_val);blue_cluster_num=idx(2);L=lab_he(:, :, 1);blue_idx=find(pixel_labels==blue_cluster_num);L_blue=L(blue_idx);is_light_blue=im2bw(L_blue,graythresh(L_blue));

Используем маску is_light_blue для того, чтобы пометить те пиксели, которые являются частью синего ядра. Отобразим синие ядра на разделенном изображении.

nuclei_labels=repmat(uint8(0), [nrows ncols]);nuclei_labels(blue_idx(is_light_blue==false))=1;nuclei_labels=repmat(nuclei_labels, [1 1 3]);blue_nuclei=he;blue_nuclei(nuclei_labels~=1)=0;imshow(blue_nuclei), title('синие ядра');

Сегментация цветных изображений на основе цветового пространства L*a*b*

Рассмотрим задачу, основной целью которой является идентификация и анализ различных цветов изображения в пространстве L*a*b*. Изображение получено с помощью пакета Image Acquisition Toolbox.

Содержание

  • Шаг 1: Получение изображения.
  • Шаг 2: Вычисление выборки цветов в цветовом пространстве L*a*b* для каждой локальной области.
  • Шаг 3: Классификация каждого пикселя с использованием принципа ближайшей окрестности.
  • Шаг 4: Отображение результатов классификации по ближайшей окрестности.
  • Шаг 5: Отображение значений 'a*' и 'b*' отмеченных цветов.