Оглавление:

Проект песочницы BME 60B: 6 шагов
Проект песочницы BME 60B: 6 шагов

Видео: Проект песочницы BME 60B: 6 шагов

Видео: Проект песочницы BME 60B: 6 шагов
Видео: Песочница в Windows. Программа Sandboxie 2024, Июль
Anonim
Проект песочницы BME 60B
Проект песочницы BME 60B

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

Шаг 1. Выберите и настройте изображение для анализа

Выберите и настройте изображение для анализа
Выберите и настройте изображение для анализа

Первый шаг в нашем коде - выбрать подходящее изображение и настроить его для анализа в Matlab. Мы можем выбрать изображение с помощью функции uigetfile, которая позволяет нам захватить любой файл и вставить его в программу. Затем с помощью imread мы читаем изображение и настраиваем его для анализа в Matlab. Выбранное изображение затем отображается на дополнительном графике.

Шаг 2: порог и графический интерфейс

Порог и графический интерфейс
Порог и графический интерфейс
Порог и графический интерфейс
Порог и графический интерфейс

В самом начале кода изображение выбирается с помощью «uigetfile», а затем определяется это изображение с помощью переменной. Затем переменная будет использоваться для идентификации кода при выполнении другого анализа. Подсюжет 2x2 создан на рисунке. В позиции 1 будет отображаться исходное изображение. В следующем разделе кода происходит корректировка пороговых значений. Первоначально используется пороговое значение по умолчанию 0,6, которое отображается в позиции 2 подграфика. Затем используется оператор if, чтобы определить, хочет ли пользователь сохранить порог или отрегулировать его. Затем пользователь может настроить порог с помощью графического интерфейса пользователя, который включает изображение в различных пороговых условиях, ползунок и кнопку сохранения. После того, как порог установлен, пользователь нажмет кнопку «Сохранить», чтобы сохранить изображение, и оно будет сохранено в пользовательских файлах MATLAB как-p.webp

Шаг 3: Построение контуров и распределения ячеек

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

Следующая часть кода рисует контуры. Есть петля, в которой ячейки заключены в красный периметр, а те ячейки, которые находятся наверху другой ячейки, обведены зеленым. Обведенное изображение затем отображается в позиции 3 с интерактивной линией расстояния. Эта линия будет определять количество пикселей в линии, настроенное пользователем для преобразователя пикселя в миллиметр. Затем коэффициент расстояния умножается на площадь, определенную параметром regionprops, и теперь площадь выражается в миллиметрах в квадрате. Затем данные строятся с использованием гистограммы, чтобы увидеть распределение ячеек по их площади. Затем эта гистограмма будет отображаться в позиции 4.

Шаг 4: преобразование изображения ячейки

Преобразовать изображение ячейки
Преобразовать изображение ячейки

На этом этапе мы взяли изображение в градациях серого и преобразовали его в двоичную форму, отфильтровали и инвертировали. Выполнение этих функций с изображением удалило зашумленные пиксели, которые можно было принять за ячейки, и сделало изображение более гладким и мягким по краям ячеек. Это было сделано для выделения клеток на изображении в виде различимых «пятен», которые отличаются по интенсивности от фона. «Кляксы» представляли собой белые изображения высокой интенсивности, а фон был черным. Если бы было выделено немного больше времени, мы бы использовали другое преобразование изображения Blob вместо функции imbinarize, чтобы быть более точным и более подходящим для наших изображений, но нам нужно больше времени для исследования и реализации функции.

Шаг 5: Подсчет ячеек и вычисление слияния ячеек

Подсчет ячеек и вычисление слияния ячеек
Подсчет ячеек и вычисление слияния ячеек

На этом этапе кода мы стремились подсчитать количество ячеек на изображении. В основном мы использовали функцию regionprops для вычисления площадей капель, и если бы площадь была рассчитана так, чтобы она находилась в желаемой границе, она была бы нанесена на подзаголовок. Границы были установлены, чтобы удалить небольшие зашумленные пиксели или большую интенсивность, которые не были ячейками. Затем счетчик ячеек будет подсчитывать центроиды, которые затем были нанесены на график, и добавлять их в счетчик в цикле for. Как только площади ячеек были определены, мы смогли рассчитать слияние. Основная важность этого шага в коде заключалась в том, чтобы найти слияние ячеек, и это было решающим для нашей конечной цели кода. Мы сделали это путем вычисления путем суммирования пикселей (sum (allAreas)) в каждом blob и последующего деления на общее значение пикселей изображения (numel (img)). Это соотношение дало бы нам конфлюэнтность, и если бы оно было определено как более 80%, то исследователю пришло бы время для пассирования клеток. Мы стремились быть максимально точными и точными, но из-за ограниченного времени мы допустили неточность. Если бы позволяло время, мы бы стали искать способы сделать подсчет капель более точным, например, использовать дополнительные методы фильтрации и / или преобразование Хафа, поскольку еще не было проведено достаточно исследований, чтобы опробовать эту технику фильтрации.

Шаг 6: округлость ячеек

Округлость ячеек
Округлость ячеек
Округлость ячеек
Округлость ячеек

Прежде чем мы сможем измерить округлость пятна на изображении, нам нужно преобразовать из RGB в оттенки серого, преобразовать в двоичную форму, инвертировать и отфильтровать изображение. Методика фильтрации заключается в использовании функции bwareaopen, которая фильтрует интересующее изображение и удаляет все слишком маленькие спецификации или пиксели, не соответствующие размеру ячейки. Структурирующий элемент создается в форме диска и окружения 2 и используется для заполнения любых пробелов на заднем плане или внутри ячеек. Затем мы используем функцию bwboundaries, которая отслеживает капли и сохраняет их в матрицу. Затем мы маркируем изображение разными цветами, чтобы оно стало более четким. Затем, используя цикл for, который выполняется в соответствии с количеством объектов и отверстий, обнаруженных в изображении, он устанавливает границу вокруг больших двоичных объектов, соответствующих этому массиву. Как только этот цикл заканчивается, начинается другой цикл, снова в соответствии с количеством объектов и отверстий, обнаруженных на изображении. На этот раз мы используем функцию regionprops, которая собирает определенные свойства, такие как площадь, из массива и хранит информацию, содержащую количество объектов и отверстий. Используя эту информацию, мы вычисляем площадь и периметр этих объектов, используя форму центроида. Пороговое значение устанавливается для сравнения результатов после того, как мы вычисляем метрическую единицу круглого объекта и отображаем это измерение в виде текста рядом с вычисленными центроидами. В окончательном коде будет отображаться округлость различных ячеек, найденных на изображении, и любые значения, близкие к значению, будут более округлыми, чем другие. Значение 1 означает, что ячейка идеально круглая и находится в хорошем состоянии для прохождения.

Рекомендуемые: