Алгоритм был создан в качестве решения одной из задач хакатона "Nuclear IT Hack". Алгоритм предназначен для анализа изображения в термоядерном реакторе. Задачей было распознать частицы радиоактивной пыли на картинке, посчитать их количество, определить размеры, составить таблицу и диаграмму.
Пользователь создает папку dust_photos
, загружает в неё фото пыли и указывает название конкретного фото, которое хочет обработать в строке 20:
filename = "your_filename_here"
⚠ В папку можно загружать только изображения определенного формата. Если хотите протестировать, то отсюда можно скачать изображения. ⚠
Далее пользователь создаёт еще 2 папки: dust_cropped
, в которую будут сохраняться обрезанные фото, и dust_csv
, в которую будут сохраняться полученные таблицы.
Также в строке 52 пользователь должен указать минимальный размер частицы в микрометрах:
min_area = 0
⚠ Размер - диагональ квадрата, описанного вокруг окружности с такой же площадью, что и у пылинки ⚠
Установите все нужные библиотеки.
- Загрузка изображения
- Обрезка изображения, считывание текста с фото
- Повышение контрастности (для 2 контуров), уменьшение шума
- Бинаризация изображения
- Поиск контуров с помощью OpenCV
- Нахождение размеров, координат и т.п.
- Создание CSV файла (таблицы)
- Создание гистограммы
- Показ финального окна
Откроется окно, на котором будет видно черно-белое фото, фото с обведенными контурами, гистограмма и немного текста.
Зеленым на фото показаны куски пыли, в которых алгоритм уверен. Красным - в которых не уверен.
Также в правом верхнем углу есть текст, где написан размер экрана в микрометрах, коэффициент (сколько микрометров в пикселе), время работы программы, количество частичек пыли, в которых алгоритм уверен и не уверен.
В папку dust_csv
сохраняется таблица с координатами и размерами пылинок:
⚠ Сохраняются только пылинки, в которых алгоритм уверен ⚠
Алгоритм создали FoxFil и UltraGeoPro1966 :)