Анализ размеров зерен Python-ом с использованием водораздела

Try Proseoai — it's free
AI SEO Assistant
SEO Link Building
SEO Writing

Анализ размеров зерен Python-ом с использованием водораздела

Список содержания

  1. Введение
  2. Анализ распределения размеров зерен
  3. Применение анализа распределения размеров зарен для сегментации клеток
  4. Импортирование изображения и библиотек
  5. Преобразование пикселей в микроны
  6. Бинаризация изображения
  7. Дополнительные морфологические операции
  8. Маркировка объектов изображения
  9. Измерение параметров объектов
  10. Создание отчета

Анализ распределения размеров зерен

В предыдущем уроке мы рассмотрели анализ распределения размеров зерен с использованием микроскопического изображения. Но этот метод не ограничивается только металлическими сплавами и горными пробками - он также может быть применен к сегментации клеток в биологии.

Введение

Привет ребята, это Трини и вы смотрите уроки по Python на моем канале Python с различных баз. В предыдущем уроке я рассказал о анализе распределения размеров зерен с использованием микроскопического изображения. Этот метод также может быть применен для сегментации клеток, если вы являетесь биологом. Давайте перейдем к коду и посмотрим на него.

Сначала мы импортируем изображение и все необходимые библиотеки. Затем мы преобразуем пиксели в микроны, чтобы иметь возможность измерять расстояния и площади в микронах, а не в пикселях.

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

Затем мы маркируем изображение с помощью функции regionprops, которая выдает различные измерения обнаруженных объектов. Мы выбрали для отчета площадь, диаметр, ориентацию, основную и побочную оси, а также минимальную, максимальную и средние интенсивности. Затем мы открываем пустой файл CSV и заполняем первую строку заголовками столбцов.

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

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

Водораздел

Водораздел представляет собой метод сегментации, о котором вы могли слышать, если использовали программы обработки изображений, такие как ImageJ или MATLAB. Он позволяет разделять различные зерна, клетки или регионы, которые сложно сегментировать с помощью обычного фильтрации. Что же такое водораздел?

Слово "водораздел" в английском языке обозначает "область земли, сливающая воду в общее водохранилище". Это означает, что вода, падающая в данной области, стекает и сливается в однопроливную площадь, а затем соединяется с рекой или ручьем. Таким образом, наличие границы водораздела означает, что вода, падающая на другой стороне этой границы, будет течь в другом направлении. То же самое относится и к сегментации с помощью водораздела.

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

В библиотеке OpenCV существуют функции для водораздела, которые принимают на вход изображение и маркеры. Маркеры - это области, которые вы знаете наверняка: это центр зерна, границы зерна и недостоверные или двусмысленные области. Затем функция водораздела возвращает отдельные границы водораздела, где пиксели на границах помечаются значением -1.

Давайте реализуем это в нашем коде. Мы продолжим с вот этого момента, и сначала мы очистим весь код после него.

(Продолжение в следующем сообщении)

Are you spending too much time on seo writing?

SEO Course
1M+
SEO Link Building
5M+
SEO Writing
800K+
WHY YOU SHOULD CHOOSE Proseoai

Proseoai has the world's largest selection of seo courses for you to learn. Each seo course has tons of seo writing for you to choose from, so you can choose Proseoai for your seo work!

Browse More Content