2013-09-21 3 views
1

Я пытался сделать макросы для подсчета ячеек на изображении. Тем не менее, мне трудно удалить перекрытие между ячейками, а для программы - различать комки.ImageJ подсчет скрещенных ячеек

run("8-bit", "stack"); 
run("Subtract Background...", "rolling=5 light sliding stack"); 
run("Median...", "radius=1 stack"); 
run("Unsharp Mask...", "radius=0.8 mask=0.50 stack"); 
run("Invert LUT"); 
run("Auto Threshold", "method=Yen white stack"); 
run("Erode"); 
run("Erode"); 
run ("Watershed"); 
run("Analyze Particles...", "size=200-2000 circularity=0.50-1.00 show=[Count Masks] display exclude clear summarize add in_situ"); 

Я использую макросы на стеке изображений.

Я также пробовал использовать GreyscaleReconstruct, но я не был так успешным. Я использовал этот код

run("Open..."); 
selectWindow("A.png"); 
setBatchMode(true); 
a=getTitle(); 
run("8-bit"); 
run("Invert LUT"); 
run("Gaussian Blur...", "sigma=2"); 
run("Duplicate...", "title=_seed"); 
run("Minimum...", "radius=3"); 
run("GreyscaleReconstruct ", "mask="+a+" seed=_seed create"); 
imageCalculator("Subtract create", a,"_seed"); 
selectWindow("Result of "+a); 
rename("WhiteTopHatReconstructed"); 
run("Auto Threshold", "method=Otsu white"); 
setBatchMode(false); 
run("Analyze Particles...", "size=200-2000 circularity=0.50-1.00 show=[Count Masks] display exclude clear summarize add in_situ"); 

Просьба помочь (с первым или вторым кодом!) Спасибо! :)

Вот изображение того, что я анализирую. enter image description here

ответ

3

Перекрытие объектов может быть непростой задачей. В Fiji wiki page on Segmentation обсуждаются два основных способа приближения сегментации изображения: плагин Trainable Weka Segmentation и более гибкий рабочий процесс на основе макросов. Пока ваши попытки попадают в последнюю категорию. В вашем случае я предлагаю попробовать попробовать.

Я играл немного с обучаемой Weka Сегментацией и получил некоторые потенциально многообещающим, но еще пока еще не достаточно хорошие, результаты:

Trainable Weka Segmentation

Я разделил изображение на четыре класса: фон, темная область в центре («blob»), сами ячейки («класс 1») и срединная линия, проходящая через каждую ячейку («класс 2»). Моя идея состояла в том, чтобы изолировать эти срединные линии, поскольку из них легче найти клеточные центры, а ваши клетки очень правильные по форме. Когда у вас есть центры, проблема перекрытия ячеек в значительной степени исчезает. А так как срединные линии являются направленными, вы можете даже вычислить углы для ориентации ячейки, если это полезно для вашего анализа.

Вот маска только 2-го класса:

Mask

К сожалению, на мои первые попытки клеточных границ также подготовка в качестве 2-го класса, но с немного больше настройки, возможно, что проблема может быть устранена. Вы также можете контролировать, какие функции изображения используются для классификации в диалоговом окне Settings, что может помочь в классификации.

Если у вас есть достаточно хороший классификатор, вы можете сохранить его (Save classifier) и применить его ко многим другим изображениям в партии (Apply classifier). Все обучаемые сегменты Weka также можно использовать из сценариев и макросов, поэтому вы можете комбинировать их с некоторой предварительной обработкой и/или постобработкой, если это необходимо.

Если вы не можете получить класс 2, чтобы прекратить идентифицировать мембраны в целом, вы, вероятно, могли бы следить за анализом самой маски для этой конкретной формы, чтобы свернуть фигуры контура бинарной ячейки в центры клеток. Возможно, есть морфологический оператор, который поможет здесь, но я не эксперт, поэтому я предлагаю просить ImageJ mailing list, который читают несколько таких экспертов.

Другой проект, который вы могли бы проверить, который может помочь в вашем анализе, - CellProfiler. Он предоставляет отличный набор модулей обработки изображений, а также отличный и отзывчивый форум, на котором вы можете обратиться за помощью к конкретным данным.

+0

Спасибо! Мне все равно придется попробовать это самостоятельно.У меня только один вопрос, как только я «обучил» его, я могу использовать его на макросах правильно? Спасибо – Kaye11

+0

@ Kaye11 Определенно. Подробную информацию см. В [Обучающейся документации по сегментации Weka] (http://fiji.sc/Trainable_Weka_Segmentation#Macro_language_compatibility). – ctrueden

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