Как пометить объекты, которые касаются края, чтобы иметь возможность обрабатывать их по-разному в последующем анализе

У меня есть один вызов для всех продвинутых пользователей и разработчиков ImageJ. В моем макросе (см. Макрос ниже) я хотел бы вставить следующую задачу:

Я анализирую частицы в области интереса и те частицы / объекты, которые касаются края изображения, я хотел бы отметить "*" в специальном столбце в таблице результатов. Вероятно, если предложение выполнит задачу, но я начинающий макрос и действительно нуждаюсь в некоторых советах.

(Мне известна опция "исключать по краям", но мне нужны области этих объектов, чтобы вычислить сумму всех областей на изображении; но мне нужно исключить их для вычисления средней площади)

id = getImageID();
for (i=0 ; i<roiManager("count"); i++) {
    selectImage(id);
    roiManager("select", i);
    run("Analyze Particles...", "size=0.008-Infinity circularity=0.00-1.00 show=Outlines clear");
}

Ваша помощь ценится, Jernej

1 ответ

Решение

Просто обработайте края и внутренние частицы отдельно. Вы можете получить изображение только с частицами, касающимися края, XOR изображение со всеми частицами и изображение с исключенными соприкасающимися частицами.

Этот макрос создает три изображения: одно со всеми частицами, одно без соприкасающихся с краем частиц и одно с только соприкасающимися с краем частицами:

run("Blobs (25K)");
setThreshold(126, 255);
run("Analyze Particles...", "size=0.01-Infinity circularity=0.00-1.00 show=Masks clear");
rename("all");
run("Analyze Particles...", "size=0.01-Infinity circularity=0.00-1.00 show=Masks exclude clear");
rename("not touching");
imageCalculator("XOR create", "all","not touching");
rename("touching");

Затем вы можете проанализировать каждый из них в отдельности и добавить маркер:

selectWindow("touching");
run("Analyze Particles...", "size=0.01-Infinity circularity=0.00-1.00 show=Outlines display clear in_situ");
for(row = 0; row < nResults; row++){
    setResult("touching", row, "*");
}

selectWindow("not touching");
run("Analyze Particles...", "size=0.01-Infinity circularity=0.00-1.00 show=Outlines display in_situ");
Другие вопросы по тегам