ImageJ - скачать полную версию бесплатно на русском

ImageJ: научная обработка изображений

ImageJ: научная обработка изображений

ImageJ — это специализированная программа для обработки и анализа научных изображений. Ее основная задача — не художественная ретушь, не дизайн и не улучшение фотографий на глаз, а измерения, сегментация, работа с пиксельными значениями, анализ интенсивности, подсчет объектов, построение гистограмм, профилей и обработка серий изображений. Программа особенно полезна там, где изображение является источником данных: в микроскопии, биологии, медицине, материаловедении, лабораторных измерениях, анализе частиц, клеток, пор, волокон, срезов, каналов и временных серий.

Выбор редакции

Скачать ImageJ бесплатно

Рекомендуем

ФотоМАСТЕР

  • Простой интерфейс
  • Ретушь и замена фона
  • Фильтры и автокоррекция
  • Быстрая обработка фото

ImageJ

  • Сложнее простых редакторов
  • Может быть избыточна для быстрых правок
  • Нужно время на освоение
  • Не все функции нужны новичку

ImageJ относится к public domain software и развивается как оригинальная ветка ImageJ 1.x. Проект начался в 1997 году как кроссплатформенное развитие NIH Image, а его ключевая особенность — открытая архитектура с макросами, Java-плагинами и большим набором команд для анализа изображений.

ImageJ работает с 8-bit grayscale, 16-bit unsigned integer, 32-bit floating-point и RGB-изображениями. Программа открывает и сохраняет TIFF, GIF, JPEG, BMP, PNG, PGM, FITS, ASCII, DICOM, raw data и дополнительные форматы через плагины. Для научной работы особенно важны TIFF, DICOM, FITS, 16-битные и 32-битные данные, потому что они сохраняют больше информации, чем обычные пользовательские JPEG-файлы.

В повседневной работе ImageJ часто используют для таких задач:

  • измерить длину, площадь, периметр, угол или диаметр объекта на изображении;

  • откалибровать масштаб по линейке или scale bar;

  • посчитать частицы, клетки, зерна, пятна, поры или другие объекты;

  • измерить среднюю яркость и интегральную плотность в ROI;

  • построить гистограмму распределения яркости;

  • получить профиль интенсивности вдоль линии;

  • обработать серию изображений как stack;

  • выполнить пороговую сегментацию через Threshold;

  • автоматизировать повторяющиеся операции макросом;

  • расширить программу плагинами под узкую лабораторную задачу.

Главная ценность ImageJ — точная, воспроизводимая работа с изображением как с массивом данных. Если пользователь просто двигает ползунок контраста ради красивой картинки, программа тоже справится. Но ее реальная сила раскрывается тогда, когда нужно доказуемо измерить объект, повторить обработку на серии файлов и получить таблицу результатов.

Кому подойдет ImageJ

ImageJ подойдет пользователю, которому нужно не улучшить фото, а получить измеримые данные из изображения. Это принципиальное отличие от обычных фоторедакторов. В ImageJ важны не фильтры ради визуального эффекта, а команды Analyze > Measure, Analyze > Set Scale…, Image > Adjust > Threshold…, Analyze > Analyze Particles…, Analyze > Histogram, Analyze > Plot Profile, ROI Manager, Results Table и макросы.

Программа особенно уместна для:

  • студентов, которые делают лабораторную работу с микрофотографиями;

  • биологов и микроскопистов, измеряющих клетки, ядра, колонии, волокна, срезы;

  • материаловедов, работающих с частицами, порами, трещинами, зернами и поверхностями;

  • врачей-исследователей, которым нужен анализ изображений вне диагностического ПО;

  • преподавателей, которым нужен бесплатный инструмент для демонстрации измерений;

  • инженеров и исследователей, которым важны пиксельные значения, профили и статистика;

  • пользователей, которым нужно быстро измерить объект на изображении с известным масштабом.

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

История версий ImageJ

ImageJ выросла из NIH Image — более ранней программы для анализа изображений на Macintosh. Wayne Rasband начал работу над NIH Image в 1987 году, а ImageJ появился в 1997 году, когда Java стала практичной основой для кроссплатформенных приложений. За счет Java программа перестала быть привязанной к одной системе и стала одинаково полезной для лабораторий на Windows, macOS и Linux.

Развитие ImageJ 1.x шло не как у коммерческого фоторедактора, где каждая большая версия продается отдельным продуктом. Здесь важнее непрерывное добавление функций, исправлений, макрокоманд, инструментов ROI, улучшений работы со стеками, таблицами, DICOM, TIFF, гистограммами и плагинами. Поэтому история программы — это история постепенного наращивания научных инструментов.

Этап Что изменилось по сути
NIH Image Основа подхода: изображение как измеряемые данные, а не как декоративная картинка.
Переход к ImageJ Кроссплатформенность на Java, расширяемость и открытая архитектура.
Развитие ImageJ 1.x Стабилизация меню, инструментов выделения, анализа, макросов и плагинов.
Период активного роста плагинов Появление большого сообщества, пользовательских расширений и специализированных рабочих процессов.
Ветка 1.4x Укрепление работы с ROI, Results Table, стеками, профилями, форматами и пользовательским интерфейсом.
Ветка 1.5x Улучшения макросов, ROI Manager, overlays, hyperstacks, таблиц, гистограмм и совместимости с современными сценариями.
Появление ImageJ2 и Fiji Формирование отдельной платформы ImageJ2 и сборки Fiji, но классическая ImageJ 1.x сохранила роль легкой и прямой среды анализа.

Release notes ImageJ показывают характер развития программы: изменения часто касаются конкретных команд вроде Analyze > Plot Profile, Image > Stacks > Tools > Combine, ROI Manager, Image > Adjust > Threshold, Image > Color, File > Import > Image Sequence и макрофункций. Это рабочая эволюция лабораторного инструмента, а не маркетинговая смена интерфейса ради новой оболочки.

Отдельно важно различать три названия:

Название Что это
ImageJ 1.x Оригинальная программа, о которой идет обзор.
ImageJ2 Переработанная платформа с другой архитектурой данных и совместимостью с ImageJ 1.x.
Fiji Дистрибутив ImageJ с набором предустановленных плагинов и дополнительной инфраструктурой для научного анализа.

Fiji не является просто другой программой с похожим названием. Это сборка на основе ImageJ, рассчитанная на пользователя, которому сразу нужен расширенный набор плагинов. Классическая ImageJ ценна тем, что остается легкой, прямой и понятной как базовая среда измерений. Fiji представляет собой расширенный дистрибутив ImageJ с набором плагинов для scientific image analysis.

Интерфейс ImageJ

Интерфейс ImageJ сначала может показаться непривычным. У программы нет большой центральной рабочей области, как у Photoshop, GIMP или Affinity Photo. Главное окно содержит меню, панель инструментов, строку состояния и индикатор прогресса. Изображения, гистограммы, профили, таблицы, окна настроек и результаты открываются отдельно. Такой подход старомоден, но удобен для научной работы: изображение, таблица результатов и окно профиля можно свободно расположить рядом.

Панель меню состоит из восьми основных разделов:

  • File — открытие, импорт, сохранение, создание новых изображений и стеков;

  • Edit — редактирование, выделения, настройки, копирование, вставка;

  • Image — типы изображений, преобразования, стековые операции, цвет, масштаб;

  • Process — фильтры, шум, бинарная обработка, арифметика изображений;

  • Analyze — измерения, гистограммы, профили, калибровка, частицы;

  • Plugins — плагины, макросы, пользовательские команды;

  • Window — управление открытыми окнами;

  • Help — справка, примеры, информация о программе и обновления.

Панель инструментов содержит набор пиктограмм для выделений и навигации. Основные инструменты:

Инструмент Для чего нужен
Rectangular Selection Tool Прямоугольное выделение области для обрезки, измерения или фильтрации.
Oval Selection Tool Эллиптическое выделение, полезное для круговых объектов и зон интереса.
Polygon Selection Tool Многоугольная область для объектов с прямыми границами.
Freehand Selection Tool Свободное выделение нерегулярной формы.
Straight Line Selection Tool Линия для измерения длины, профиля интенсивности и калибровки масштаба.
Segmented Line Selection Tool Ломаная линия для измерения сложных контуров.
Freehand Line Selection Tool Произвольная линия вдоль кривой структуры.
Angle Tool Измерение углов.
Point Tool / Multi-point Tool Отметка точек, подсчет объектов вручную.
Wand Tool Автоматическое выделение связанной области по границе.
Text Tool Добавление текста на изображение.
Magnifying Glass Увеличение и уменьшение масштаба просмотра.
Scrolling Tool Перемещение увеличенного изображения.
Color Picker Tool Выбор цвета.
More Tools Menu Доступ к дополнительным инструментам и toolsets.

У некоторых инструментов есть контекстные параметры. Маленький треугольник на значке показывает, что у инструмента есть дополнительные варианты, а двойной щелчок по инструменту открывает его окно настроек. Например, у Point Tool можно настроить внешний вид точек, у линий — ширину, у некоторых инструментов — поведение при создании выделения.

Логика работы: изображение, ROI, измерение, таблица

Типичный рабочий цикл в ImageJ выглядит так:

  1. Открыть изображение.

  2. При необходимости откалибровать масштаб.

  3. Выделить область интереса вручную или автоматически.

  4. Настроить, какие параметры измерять.

  5. Выполнить измерение.

  6. Проверить Results Table.

  7. Сохранить результаты или повторить анализ на серии изображений.

В центре этой логики находится ROI — region of interest, область интереса. ROI может быть прямоугольником, эллипсом, многоугольником, свободной областью, линией, ломаной линией, точкой или набором точек. ImageJ умеет измерять ROI, переносить выделения на другие изображения, сохранять их, добавлять в ROI Manager и использовать для фильтрации или анализа. Возможности выделений включают rectangular, elliptical, irregular area selections, line selections, point selections, wand-created selections, измерение, фильтрацию и перенос на другие изображения.

Results Table — это не вспомогательное окно, а один из главных элементов программы. Именно туда попадают измерения площади, средней яркости, периметра, координат, Feret’s Diameter, Integrated Density, Min & Max Gray Value и других параметров. В научной работе важно не только увидеть результат, но и получить числовую таблицу, которую можно проверить, экспортировать и использовать дальше.

Открытие изображений и поддерживаемые форматы

ImageJ открывает изображения через File > Open…, импортирует серии через File > Import > Image Sequence…, читает raw-данные через File > Import > Raw…, открывает URL через File > Import > URL…, а также работает с таблицами, LUT, ROI и текстовыми файлами. File > Open… открывает TIFF, GIF, JPEG, DICOM, BMP, PGM, FITS и форматы, добавленные reader-плагинами.

Для лабораторной работы особенно важны следующие варианты:

Команда Практическое применение
File > Open… Открыть один файл изображения.
File > Open Recent Быстро вернуться к недавно открытому файлу.
File > Open Samples Открыть тестовые изображения для проверки команд и макросов.
File > Import > Image Sequence… Собрать папку кадров в stack.
File > Import > Raw… Открыть изображение без стандартного заголовка, если известны размеры и тип данных.
File > Import > URL… Открыть изображение по URL.
File > Save As > Tiff… Сохранить изображение или stack в формате TIFF.
File > Save As > Image Sequence… Экспортировать stack как последовательность кадров.

Окно Sequence Options появляется при импорте последовательности изображений. В нем задаются Number of Images, Starting Image, Increment, File Name Contains, Scale Images, Sort Names Numerically, Use Virtual Stack и другие параметры. Это важно при работе с временными сериями, Z-stack, микроскопическими кадрами, сериями снимков с камеры и большими наборами TIFF-файлов. Use Virtual Stack полезен, когда серия слишком большая для оперативной памяти: изображения читаются с диска как виртуальный stack, но изменения в таком режиме имеют ограничения.

Для количественного анализа лучше не использовать JPEG как рабочий формат. JPEG применяет lossy compression, создает артефакты и плохо подходит для измерений интенсивности, границ, колокализации и слабых различий яркости. TIFF в ImageJ является основным форматом сохранения, поддерживает все типы данных программы, spatial calibration, density calibration, selections и overlays.

Базовая обработка изображения

ImageJ содержит набор базовых операций, которые нужны перед анализом: изменение яркости и контраста, преобразование типа, кадрирование, поворот, отражение, сглаживание, повышение резкости, выделение границ, пороговая обработка и бинарные операции.

Самые частые команды:

Задача Команда
Настроить отображение яркости Image > Adjust > Brightness/Contrast…
Перевести в 8-bit Image > Type > 8-bit
Перевести в RGB Image > Type > RGB Color
Обрезать по выделению Image > Crop
Изменить размер Image > Adjust > Size…
Повернуть Image > Transform > Rotate…
Отразить Image > Transform > Flip Horizontally / Flip Vertically
Сгладить Process > Smooth
Повысить резкость Process > Sharpen
Найти границы Process > Find Edges
Убрать шум Process > Noise > Despeckle или другие команды Noise
Задать порог Image > Adjust > Threshold…
Преобразовать в маску Process > Binary > Convert to Mask

Важно разделять изменение отображения и изменение данных. Например, Brightness/Contrast… может менять то, как изображение выглядит на экране, но для анализа нужно понимать, были ли изменены реальные пиксельные значения. В научной обработке нельзя бессистемно применять фильтры, если затем планируется количественное сравнение. Любой шаг обработки должен быть воспроизводимым: параметры лучше фиксировать, а исходные файлы хранить отдельно.

ImageJ поддерживает smoothing, sharpening, edge detection, median filtering, thresholding, интерактивную настройку brightness/contrast, geometric operations, crop, scale, resize, rotate и flip.

Выделения, ROI и ROI Manager

Выделение в ImageJ — это способ сказать программе, какую часть изображения нужно анализировать. Если ROI нет, многие команды работают по всему изображению. Если ROI есть, анализ ограничивается этой областью.

Пример: нужно измерить среднюю яркость цитоплазмы клетки, но не учитывать фон. Пользователь создает свободное выделение вокруг клетки, открывает Analyze > Set Measurements…, включает Mean gray value, Integrated density, Min & max gray value, затем выполняет Analyze > Measure. В таблицу попадает статистика только по выделенной области.

Для сложной работы используется ROI Manager. Он нужен, когда областей много:

  • несколько клеток на одном изображении;

  • одна и та же зона на разных каналах;

  • серия измерений по time-lapse;

  • сравнение областей до и после обработки;

  • ручная проверка объектов после автоматического анализа;

  • сохранение набора ROI в файл.

Типичный рабочий цикл с ROI Manager:

  1. Создать первое выделение инструментом Rectangular, Oval, Polygon или Freehand.

  2. Открыть Analyze > Tools > ROI Manager….

  3. Нажать Add.

  4. Создать следующее выделение.

  5. Снова нажать Add.

  6. Включить Show All, чтобы видеть все ROI поверх изображения.

  7. Использовать Measure, Multi Measure, More >> Save…, More >> Open… или More >> Rename….

ROI Manager особенно полезен в задачах, где автоматическая сегментация не дает идеального результата. Например, программа может найти частицы по Threshold, добавить их в ROI Manager через Analyze Particles… > Add to Manager, а пользователь затем удалит ложные объекты, переименует ROI и выполнит повторные измерения.

Калибровка масштаба через Set Scale

Одна из главных причин использовать ImageJ — возможность измерять объекты не только в пикселях, но и в реальных единицах: микрометрах, миллиметрах, сантиметрах, нанометрах или других единицах длины. Для этого используется команда Analyze > Set Scale….

Окно Set Scale содержит поля Distance in Pixels, Known Distance, Pixel Aspect Ratio, Unit of Length и флажок Global. Смысл простой: пользователь показывает программе, сколько пикселей соответствует известному расстоянию, а ImageJ пересчитывает будущие измерения в реальные единицы. Если включить Global, эта калибровка применяется ко всем изображениям, а не только к активному.

Практическая инструкция:

  1. Откройте изображение, на котором есть масштабная линейка или объект с известной длиной.

  2. Выберите Straight Line Selection Tool.

  3. Проведите линию точно по известному отрезку: например, по scale bar 100 µm.

  4. Откройте Analyze > Set Scale….

  5. В поле Distance in Pixels ImageJ уже подставит длину проведенной линии в пикселях.

  6. В поле Known Distance введите реальное значение, например 100.

  7. В поле Unit of Length введите единицу, например µm, um, mm или nm.

  8. Оставьте Pixel Aspect Ratio равным 1.0, если пиксели квадратные.

  9. Включите Global, только если этот же масштаб относится к другим изображениям.

  10. Нажмите OK.

  11. Проверьте результат инструментом Straight Line Selection Tool и командой Analyze > Measure.

После калибровки измерения площади будут выводиться в квадратных единицах, длины — в выбранных единицах, а не только в пикселях. Это критично для микроскопии: если пользователь не настроил Set Scale…, он получает пиксели, а не микрометры.

Типичная ошибка — провести линию не точно по scale bar. Если линия чуть длиннее или короче, все последующие измерения будут смещены. Вторая ошибка — включить Global для изображений с другим увеличением. В таком случае программа будет применять неправильный масштаб к снимкам, снятым с другим объективом, камерой или binning.

Analyze: измерения, гистограммы, профили и Results Table

Раздел Analyze — центральный для научной работы. Здесь находятся команды, которые превращают изображение в числовые данные.

Основные команды:

Команда Что делает
Analyze > Measure Измеряет активное изображение или ROI и добавляет строку в Results Table.
Analyze > Set Measurements… Выбирает, какие параметры записывать в таблицу.
Analyze > Set Scale… Настраивает пространственный масштаб.
Analyze > Histogram Строит гистограмму яркости.
Analyze > Plot Profile Строит профиль интенсивности по линии.
Analyze > Analyze Particles… Считает и измеряет объекты на бинарном или thresholded-изображении.
Analyze > Summarize Подводит сводку по результатам.
Analyze > Distribution… Анализирует распределение значений в таблице.

Analyze > Measure работает по-разному в зависимости от типа выделения. Для area selection можно получить площадь, центр масс, центроид, периметр, bounding rectangle, shape descriptors, fitted ellipse, Feret’s Diameter, skewness, kurtosis и area fraction. Для line selection программа считает параметры по пикселям вдоль линии, а для point selection — координаты и значения в точках.

Перед измерениями нужно открыть Analyze > Set Measurements… и включить нужные параметры. Самые полезные:

  • Area — площадь ROI;

  • Mean gray value — средняя яркость;

  • Standard deviation — разброс яркости;

  • Modal gray value — наиболее частое значение;

  • Min & max gray value — минимум и максимум;

  • Centroid — координаты центра;

  • Center of mass — центр масс с учетом интенсивности;

  • Perimeter — периметр;

  • Bounding rectangle — ограничивающий прямоугольник;

  • Fit ellipse — параметры вписанного эллипса;

  • Shape descriptors — форма объекта;

  • Feret’s diameter — максимальный диаметр;

  • Integrated density — сумма значений пикселей;

  • Area fraction — доля площади.

Histogram показывает распределение яркости в активном изображении или выделении. По оси X идут значения серого, по оси Y — количество пикселей. Гистограмма помогает понять, насколько хорошо объект отделяется от фона, где ставить threshold, есть ли пересвет, провалы или несколько пиков яркости.

Plot Profile особенно важен для анализа линий. Например, можно провести линию через мембрану, сосуд, волокно, границу материала или светящуюся структуру и построить график интенсивности по этой линии. Это полезно для сравнения ширины пика, резкости границы, распределения флуоресценции, изменения сигнала вдоль объекта.

Threshold: пороговая сегментация

Пороговая сегментация — один из самых частых сценариев ImageJ. Команда Image > Adjust > Threshold… позволяет выделить пиксели, которые попадают в заданный диапазон яркости. В режиме предпросмотра выбранные пиксели обычно подсвечиваются красным. После настройки можно нажать Apply и получить бинарное изображение.

Окно Threshold содержит:

  • гистограмму яркости;

  • верхний и нижний ползунок порога;

  • числовые значения границ;

  • выпадающий список метода, например Default;

  • выпадающий список цвета предпросмотра, например Red;

  • флажок Dark background;

  • флажок Stack histogram;

  • кнопки Auto, Apply, Reset, Set.

Практический смысл этих элементов:

Элемент Как использовать
Верхний и нижний ползунки Задают диапазон пикселей, которые считаются объектом.
Auto Подбирает порог автоматически.
Apply Применяет порог и превращает изображение в бинарное.
Reset Сбрасывает порог.
Set Позволяет ввести пороговые значения вручную.
Dark background Меняет интерпретацию фона и объекта.
Red Показывает выбранные пиксели красным цветом в предпросмотре.
Stack histogram Использует гистограмму всего stack при работе с серией.

Threshold не должен использоваться механически. Если фон неровный, объект плохо контрастирует, изображение пересвечено, шумное или имеет градиент освещения, один глобальный порог может дать неправильную сегментацию. В таком случае сначала применяют коррекцию фона, фильтрацию шума, локальную обработку или более аккуратный выбор ROI.

Хороший признак правильного Threshold — красная маска совпадает с реальными объектами, не захватывает фон и не разрывает нужные структуры. Плохой признак — красным выделяется половина фона, мелкий шум, тени, пыль, блики или только яркие части объекта вместо целого объекта.

Analyze Particles: подсчет и измерение объектов

Analyze > Analyze Particles… — одна из самых полезных команд ImageJ. Она считает и измеряет объекты на бинарном или thresholded-изображении. Программа сканирует изображение или выделенную область, находит край объекта, обводит его через Wand Tool, измеряет командой Measure, затем переходит к следующему объекту.

В окне Analyze Particles важны следующие параметры:

Параметр Значение
Size Диапазон площади объектов. Например, 50-Infinity исключит мелкий шум.
Circularity Диапазон округлости от 0.00 до 1.00. Чем ближе к 1, тем объект круглее.
Show Как показать найденные объекты: Nothing, Outlines, Masks, Ellipses и другие варианты.
Display Results Вывести измерения каждого объекта в Results Table.
Clear Results Очистить старые результаты перед анализом.
Summarize Показать сводку: количество, общая площадь, средний размер и др.
Add to Manager Добавить найденные объекты в ROI Manager.
Exclude on Edges Исключить объекты, касающиеся края изображения.
Include Holes Учитывать отверстия внутри объектов.
Record Starts Записать стартовые координаты объектов.
OK Запустить анализ.
Cancel Закрыть без анализа.
Help Открыть справку.

Типовая инструкция для подсчета частиц:

  1. Откройте изображение.

  2. Сохраните исходник отдельно и работайте с копией через Image > Duplicate….

  3. Если изображение цветное, переведите его в grayscale или нужный канал.

  4. При необходимости используйте Image > Type > 8-bit.

  5. Настройте контраст только настолько, чтобы видеть объект и фон.

  6. Откройте Image > Adjust > Threshold….

  7. Подберите порог так, чтобы красная маска покрывала только нужные объекты.

  8. Нажмите Apply или оставьте threshold preview, если команда работает корректно без применения.

  9. При слипшихся объектах используйте Process > Binary > Watershed.

  10. Откройте Analyze > Set Measurements… и включите нужные параметры.

  11. Откройте Analyze > Analyze Particles….

  12. Задайте Size так, чтобы исключить шум и слишком крупные ложные области.

  13. Задайте Circularity, если нужно учитывать форму.

  14. В Show выберите Outlines или Overlay Outlines для проверки.

  15. Включите Display Results, Summarize, при необходимости Add to Manager.

  16. Нажмите OK.

  17. Проверьте найденные объекты визуально.

  18. Сохраните Results Table.

Пример: на микрофотографии нужно посчитать круглые частицы. После Threshold программа выделяет частицы, но часть пыли тоже попадает в маску. В Analyze Particles… можно задать Size: 20-Infinity, чтобы убрать мелкие точки, и Circularity: 0.50-1.00, чтобы оставить более округлые объекты. Затем в Show выбрать Outlines и проверить, какие объекты были посчитаны.

Если объекты касаются краев изображения, обычно включают Exclude on Edges. Это защищает статистику: объект на краю виден не полностью, поэтому его площадь и форма искажены. Если нужно измерять все видимые фрагменты, этот флажок не включают.

Работа со стеками, сериями и гиперстеками

ImageJ умеет работать не только с одиночными картинками, но и со stack — набором связанных изображений в одном окне. Stack используется для Z-серий, time-lapse, кадров видео, последовательностей микроскопии, срезов, каналов и серий, снятых с одинаковыми параметрами.

Программа умеет отображать stack связанных изображений в одном окне, обрабатывать весь stack одной командой, открывать папку изображений как stack и сохранять stack как multi-image TIFF.

Основные команды:

Команда Что делает
File > Import > Image Sequence… Открывает папку изображений как stack.
Image > Stacks > Z Project… Делает проекцию Z-stack.
Image > Stacks > Make Montage… Создает монтаж из срезов stack.
Image > Stacks > Reslice… Перестраивает stack в другом направлении.
Image > Stacks > Tools Содержит дополнительные операции со stack.
Image > Hyperstacks Работа с многомерными наборами каналов, Z и времени.

Практический пример: есть 200 кадров time-lapse в папке. Через File > Import > Image Sequence… они открываются как stack. После этого можно применить одинаковый Threshold, построить измерения по кадрам, сделать montage или сохранить серию в TIFF. Если кадров слишком много, включают Use Virtual Stack, чтобы не загружать все в оперативную память сразу.

Гиперстек удобен, когда изображение содержит несколько измерений: каналы, Z-срезы и время. Например, флуоресцентная микроскопия может иметь канал DAPI, канал GFP, несколько Z-срезов и серию по времени. ImageJ позволяет просматривать такие данные через слайдеры и применять команды к нужному измерению.

Цвет, каналы и LUT

ImageJ хорошо работает с grayscale-изображениями, но поддерживает и цвет. Для научного анализа цвет часто рассматривается не как эстетический параметр, а как набор каналов и интенсивностей. Например, RGB-изображение можно разделить на компоненты, а многоканальную флуоресценцию — анализировать по отдельным каналам.

Полезные команды:

Команда Применение
Image > Color > Split Channels Разделяет цветное изображение на каналы.
Image > Color > Merge Channels… Объединяет отдельные каналы.
Image > Color > Channels Tool… Управляет каналами в composite image.
Image > Lookup Tables Применяет LUT к grayscale-изображению.
Image > Type > RGB Color Преобразует изображение в RGB.
Image > Type > 8-bit Переводит изображение в 8-bit grayscale.

ImageJ умеет разделять 32-битное цветное изображение на RGB или HSV-компоненты, объединять 8-битные компоненты в цветное изображение, преобразовывать RGB в 8-bit indexed color и применять pseudo-color palettes к grayscale-изображениям.

LUT — это lookup table, таблица отображения значений яркости в цвета. LUT не обязательно меняет сами пиксельные данные; часто он меняет только отображение. Это важно: яркая псевдоцветовая картинка может выглядеть эффектнее, но измерения должны опираться на реальные значения пикселей, а не на впечатление от палитры.

Макросы и автоматизация

Макросы — одна из причин, по которой ImageJ остается востребованной программой для научного анализа изображений. Макрос позволяет записать последовательность действий и повторить ее на других файлах. Это снимает ручную рутину и уменьшает риск, что пользователь обработает разные изображения разными параметрами.

Команды для макросов находятся в Plugins > Macros:

Команда Назначение
Plugins > Macros > Record… Записывает действия пользователя в macro code.
Plugins > Macros > Run… Запускает macro-файл.
Plugins > Macros > Install… Устанавливает макрос как доступную команду.
Plugins > New > Macro Создает новое окно редактора макроса.
Plugins > Macros > Startup Macros Работает с макросами, загружаемыми при запуске.

Простой пример логики макроса:

Открыть изображениеПреобразовать в 8-bitЗадать thresholdЗапустить Analyze ParticlesСохранить Results TableПерейти к следующему изображению

Такой процесс можно выполнить вручную на пяти файлах, но на сотнях изображений ручной способ становится ненадежным. Макрос обеспечивает одинаковый порядок действий. ImageJ поддерживает автоматизацию задач, создание custom tools, запись команд через command recorder и отладку через macro debugger; на сайте ImageJ также доступны сотни макросов.

Макросы особенно полезны для:

  • пакетного подсчета частиц;

  • одинаковой обработки изображений с микроскопа;

  • автоматического экспорта таблиц;

  • повторяемого Threshold с фиксированными параметрами;

  • переименования и сохранения файлов;

  • анализа stack по срезам;

  • измерения серии ROI.

Но автоматизация не заменяет проверку. Если threshold подобран плохо, макрос быстро и аккуратно повторит плохую обработку на всех изображениях. Поэтому сначала нужно визуально проверить алгоритм на нескольких типичных примерах, затем запускать пакетную обработку.

Плагины ImageJ

ImageJ построена так, чтобы ее можно было расширять. Плагины добавляют новые команды, форматы, фильтры, методы анализа, инструменты сегментации, визуализацию, импорт, экспорт, статистику и специализированные функции. Многие встроенные команды ImageJ также реализованы как плагины, а пользовательские расширения могут появляться в меню Plugins или других разделах меню.

Папка ImageJ/plugins/ играет важную роль: структура папок может отражаться в меню Plugins. Если плагинов много, меню может разрастаться, поэтому их удобно раскладывать по подпапкам. В некоторых случаях JAR-плагины добавляют команды не только в Plugins, но и в другие меню через конфигурацию.

Практическая ценность плагинов:

  • поддержка дополнительных форматов изображений;

  • специальные алгоритмы сегментации;

  • анализ 3D-данных;

  • колокализация;

  • работа с микроскопическими форматами;

  • регистрация изображений;

  • трекинг объектов;

  • улучшенные инструменты для биомедицинских задач;

  • пользовательские pipeline под конкретную лабораторию.

Именно плагины сделали ImageJ не просто программой, а экосистемой. Пользователь может начать с базовых измерений, а затем постепенно расширять среду под свои задачи.

Практический сценарий: измерить длину объекта на микрофотографии

Задача: есть микрофотография с scale bar 50 µm. Нужно измерить длину волокна.

Порядок работы:

  1. Открыть изображение.

  2. Выбрать Straight Line Selection Tool.

  3. Провести линию по scale bar.

  4. Открыть Analyze > Set Scale….

  5. Ввести Known Distance: 50.

  6. Ввести Unit of Length: µm.

  7. Нажать OK.

  8. Провести линию вдоль волокна.

  9. Открыть Analyze > Measure.

  10. Посмотреть длину в Results Table.

Если объект кривой, лучше использовать Segmented Line Selection Tool или Freehand Line Selection Tool. Для извилистых объектов обычная прямая линия даст расстояние между концами, а не длину по контуру.

Практический сценарий: измерить площадь объекта

Задача: нужно измерить площадь окрашенной области на снимке.

Порядок работы:

  1. Откалибровать масштаб через Analyze > Set Scale….

  2. Выбрать Freehand Selection Tool или Polygon Selection Tool.

  3. Обвести область.

  4. Открыть Analyze > Set Measurements….

  5. Включить Area, Mean gray value, при необходимости Integrated density.

  6. Выполнить Analyze > Measure.

  7. Проверить строку в Results Table.

Если область четко отделяется по яркости, можно не обводить вручную, а использовать Image > Adjust > Threshold… и затем Analyze > Analyze Particles…. Ручное выделение лучше для единичных объектов сложной формы, автоматическое — для множества похожих объектов.

Практический сценарий: посчитать клетки или частицы

Задача: есть изображение с множеством светлых клеток на темном фоне. Нужно получить количество объектов и площадь каждого.

Порядок работы:

  1. Открыть изображение.

  2. Перевести в 8-bit: Image > Type > 8-bit.

  3. Открыть Image > Adjust > Threshold….

  4. Настроить порог так, чтобы клетки были выделены красным.

  5. Нажать Apply.

  6. Если клетки слипаются, применить Process > Binary > Watershed.

  7. Открыть Analyze > Set Measurements….

  8. Включить Area, Centroid, Shape descriptors, Feret’s diameter.

  9. Открыть Analyze > Analyze Particles….

  10. Настроить Size.

  11. Настроить Circularity.

  12. В Show выбрать Outlines.

  13. Включить Display Results, Summarize, Add to Manager.

  14. Нажать OK.

  15. Сравнить outlines с исходным изображением.

Ошибки в такой задаче чаще всего связаны не с самой программой, а с неправильным threshold, шумом, слипшимися объектами или неверным диапазоном Size. Если мелкий мусор считается как клетки, нижнюю границу Size повышают. Если реальные клетки пропадают, границу уменьшают или корректируют threshold.

Практический сценарий: измерить среднюю яркость области

Задача: сравнить интенсивность флуоресценции в нескольких клетках.

Порядок работы:

  1. Открыть изображение нужного канала.

  2. Не применять декоративные фильтры.

  3. Создать ROI вокруг первой клетки.

  4. Добавить ROI в ROI Manager.

  5. Создать ROI вокруг следующих клеток.

  6. Добавить их в ROI Manager.

  7. Открыть Analyze > Set Measurements….

  8. Включить Mean gray value, Integrated density, Area, Min & max gray value.

  9. В ROI Manager выделить нужные ROI.

  10. Нажать Measure или Multi Measure.

  11. Проверить таблицу.

Для корректного сравнения нужно одинаково обрабатывать все изображения. Нельзя один снимок осветлить вручную, другой оставить как есть, а затем сравнивать Mean gray value. Если требуется коррекция фона, ее нужно выполнять единообразно и документировать.

Практический сценарий: построить профиль интенсивности

Задача: посмотреть, как меняется яркость через границу объекта.

Порядок работы:

  1. Выбрать Straight Line Selection Tool.

  2. Провести линию через интересующую структуру.

  3. Открыть Analyze > Plot Profile.

  4. Изучить график.

  5. При необходимости сохранить значения из окна графика.

Профиль интенсивности полезен, когда визуально кажется, что граница резкая, но нужно проверить это количественно. Например, можно сравнить ширину пика флуоресценции в двух условиях или оценить падение яркости от центра к периферии.

Практический сценарий: подготовить серию изображений к анализу

Задача: есть папка с кадрами time-lapse. Нужно одинаково обработать кадры и получить измерения.

Порядок работы:

  1. Открыть File > Import > Image Sequence….

  2. Выбрать папку с файлами.

  3. Включить Sort Names Numerically, если имена содержат номера.

  4. При большом объеме включить Use Virtual Stack.

  5. Проверить, что кадры открылись в правильном порядке.

  6. При необходимости сделать ROI или threshold.

  7. Настроить измерения через Analyze > Set Measurements….

  8. Использовать stack-команды или макрос для повторяемого анализа.

Для time-lapse важно не перепутать порядок кадров. Если файлы называются frame1, frame2, frame10, алфавитная сортировка может поставить frame10 перед frame2. Поэтому Sort Names Numerically имеет практическое значение.

Сравнение с аналогами

ImageJ находится между простыми ручными инструментами и более тяжелыми платформами для анализа. Она сильна в быстрых измерениях, ROI, макросах, открытости, легкости и научной воспроизводимости. Но для некоторых задач удобнее специализированные аналоги.

Программа Где сильна Где уступает классической ImageJ
Fiji Удобнее для расширенного bioimage analysis, потому что содержит множество предустановленных плагинов и автоматический updater. Более тяжелая и насыщенная среда, чем простая ImageJ 1.x; для базовых измерений иногда избыточна.
CellProfiler Хорош для pipeline-подхода, массовой обработки клеточных изображений, автоматического анализа больших наборов и экспорта данных. CellProfiler ориентирован на измерение и анализ cell images с модулями pipeline. Менее удобен для быстрых ручных измерений, одиночных ROI, точечной проверки и простых операций открыл — выделил — измерил.
QuPath Сильный вариант для digital pathology и whole slide image analysis, особенно при работе с большими слайдами. Избыточен для простых микрофотографий, одиночных изображений, базового Threshold и измерений по ROI.
napari Современный viewer для 2D, 3D и higher-dimensional arrays, удобный для Python-экосистемы, слоев, аннотаций и больших массивов. Требует большего привыкания к Python-подходу; не так прямолинеен для классических команд Analyze, ROI Manager и макросов ImageJ 1.x.
Icy Ориентирован на bioimage informatics, визуализацию, аннотацию, количественный анализ, плагины и graphical programming. Менее универсально узнаваем в учебных инструкциях и лабораторных протоколах, где часто прямо указываются команды ImageJ.
Adobe Photoshop Силен в ретуши, слоях, масках, цветокоррекции, подготовке изображений для публикаций и визуальной правке. Не является специализированной средой для научных измерений, макросов анализа, Results Table, Analyze Particles и воспроизводимой сегментации.
GIMP Подходит для бесплатного редактирования изображений, слоев, масок и базовой графики. Не заменяет специализированные измерительные команды, ROI Manager, stack-анализ и научную логику ImageJ.

Выбор зависит от задачи. Для одиночной микрофотографии, измерения длины, площади, яркости, подсчета частиц и простой автоматизации ImageJ остается очень сильным вариантом. Для целых коллекций клеточных изображений с формальным pipeline часто удобнее CellProfiler. Для цифровой патологии и whole slide images — QuPath. Для современной Python-визуализации многомерных данных — napari. Для расширенной bioimage-среды на базе ImageJ — Fiji.

Преимущества ImageJ

Главное преимущество ImageJ — сочетание простоты и глубины. Программа открывается быстро, не требует тяжелой рабочей среды и дает прямой доступ к измерениям. Пользователь может открыть изображение, провести линию, задать масштаб, нажать Analyze > Measure и сразу получить числовой результат.

Сильные стороны:

  • бесплатность и public domain-статус;

  • работа на разных операционных системах благодаря Java;

  • поддержка научных типов данных;

  • работа с TIFF, DICOM, FITS и другими форматами;

  • точные измерения расстояний, площадей, углов и интенсивности;

  • удобный Results Table;

  • сильные инструменты ROI;

  • поддержка stack и hyperstack;

  • Threshold и Analyze Particles для сегментации и подсчета объектов;

  • макросы для автоматизации;

  • плагины для расширения;

  • большой объем учебных материалов и лабораторных протоколов;

  • понятная логика для научных задач.

ImageJ особенно хороша в задачах, где требуется не красивый интерфейс, а контроль над процессом. Она позволяет видеть, что именно измеряется, какие параметры включены, какие ROI выбраны и какие данные попадают в таблицу.

Недостатки ImageJ

У ImageJ есть слабые стороны, и их лучше учитывать заранее.

Первый недостаток — устаревшая организация интерфейса. Окна открываются отдельно, диалоги выглядят просто, а пользователь, привыкший к современным приложениям с единой рабочей областью, может сначала растеряться. Но эта простота не означает слабость: многие команды работают точно и быстро.

Второй недостаток — высокая ответственность пользователя. ImageJ не угадывает, что именно считать клеткой, частицей или фоном. Если пользователь неправильно задал threshold, не откалибровал масштаб или не проверил Set Measurements…, программа честно выдаст неправильные числа.

Третий недостаток — зависимость от качества исходных изображений. Неровный фон, шум, пересвет, JPEG-артефакты, тени, грязь на препарате, слипшиеся объекты и неправильная экспозиция ухудшают анализ. ImageJ может помочь обработкой, но не исправит методическую ошибку съемки.

Четвертый недостаток — сложные современные pipeline удобнее строить в других средах. Если нужно массово анализировать миллионы клеток, связывать результаты с машинным обучением, работать с whole slide pathology или строить Python-экосистему, стоит рассмотреть CellProfiler, QuPath, napari или Fiji.

Частые ошибки новичков

Измерение в пикселях вместо реальных единиц

Пользователь проводит линию, нажимает Analyze > Measure и получает длину. Но если Analyze > Set Scale… не настроен, это длина в пикселях. Для микроскопии это почти всегда недостаточно.

Неправильный Global scale

Флажок Global удобен, но опасен. Если включить его для одного увеличения, а затем открыть изображение с другим масштабом, измерения будут неверными.

JPEG как рабочий формат

JPEG подходит для просмотра, но плохо подходит для количественного анализа. Артефакты сжатия могут влиять на границы, яркость и threshold. Для рабочих данных лучше использовать TIFF или другой lossless-формат, подходящий под тип данных.

Threshold выбран только по внешнему виду

Красная маска должна соответствовать реальным объектам. Если threshold захватывает фон или пропускает слабые участки объекта, результаты Analyze Particles будут ошибочными.

Старые данные остались в Results Table

Перед новым анализом нужно очистить таблицу или включить Clear Results в Analyze Particles…. Иначе старые и новые измерения смешаются.

Неправильный Size в Analyze Particles

Если Size слишком маленький, программа считает шум. Если слишком большой — пропускает реальные объекты. Диапазон нужно подбирать по ожидаемой площади объектов после калибровки.

Слипшиеся объекты считаются как один

Если частицы или клетки соприкасаются, Analyze Particles может принять их за один объект. Иногда помогает Process > Binary > Watershed, но он тоже требует проверки.

Непроверенные ROI

Автоматически найденные ROI нужно смотреть поверх изображения. Включение Show: Outlines или Add to Manager помогает увидеть, что именно попало в анализ.

Советы для точной работы

Для нормального анализа в ImageJ полезно придерживаться жесткой дисциплины.

Сохраняйте исходные изображения отдельно. Рабочие копии можно преобразовывать, threshold применять, фильтровать и сохранять, но исходник должен оставаться неизменным.

Перед измерениями всегда проверяйте Analyze > Set Measurements…. Если нужный параметр не включен, он не появится в Results Table.

Для микроскопии всегда проверяйте масштаб. Если изображение содержит scale bar, калибруйте через Analyze > Set Scale…. Если масштаб уже записан в metadata, все равно проверьте единицы и результат контрольной линией.

Не полагайтесь только на автоматический threshold. Смотрите, что выделено красным. Проверяйте маску на нескольких изображениях, а не только на одном удобном примере.

Используйте ROI Manager, когда областей больше одной. Это делает работу воспроизводимой: ROI можно сохранить, открыть повторно и измерить заново.

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

Для публикаций и отчетов сохраняйте параметры: threshold method, диапазон порога, Size, Circularity, включенные измерения, масштаб, формат исходных данных и шаги обработки.

Когда ImageJ особенно удобна

ImageJ хорошо подходит для небольших и средних аналитических задач, где пользователь хочет держать процесс под контролем. Например:

  • измерить толщину слоя на микрофотографии;

  • посчитать поры на срезе материала;

  • оценить площадь окрашенной зоны;

  • сравнить интенсивность флуоресценции;

  • измерить длину корней, волокон, трещин или сосудов;

  • построить профиль яркости;

  • обработать Z-stack;

  • сделать монтаж срезов;

  • посчитать частицы на SEM/TEM-изображении;

  • повторить один алгоритм на серии файлов.

В таких задачах ImageJ часто быстрее и прозрачнее, чем тяжелые платформы. Пользователь сразу видит изображение, выделение, маску, таблицу и результат.

Когда лучше выбрать другой инструмент

Если задача связана с массовыми клеточными pipeline, где нужно автоматически обрабатывать огромные наборы изображений по модульной схеме, удобнее CellProfiler. Если нужно работать с whole slide images, аннотациями тканей и цифровой патологией, логичнее QuPath. Если пользователь строит Python-пайплайн и работает с большими многомерными массивами, лучше подойдет napari. Если нужна ImageJ-среда с большим набором готовых плагинов, проще взять Fiji.

Но это не делает ImageJ устаревшей. Ее ниша остается четкой: быстрый, понятный, расширяемый научный анализ изображений с ручным контролем и точными измерениями.

Итоговая оценка

ImageJ 1.x — не универсальный фоторедактор, а научная рабочая программа для анализа изображений. Ее стоит использовать тогда, когда важны измерения, калибровка, ROI, яркость пикселей, гистограммы, профили, stack, Threshold, Analyze Particles, макросы и Results Table.

Сильнее всего программа раскрывается в лабораторных и исследовательских задачах: микроскопия, анализ частиц, измерение объектов, обработка серий, сравнение интенсивности, подготовка числовых данных из изображений. Она требует внимательности, потому что неправильный масштаб, неудачный threshold или неподходящий формат файла дают ошибочные результаты. Но при аккуратной работе ImageJ остается одним из самых практичных инструментов для научной обработки изображений.

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