Полтора месяца назад я рассказывал о том, как Бен Краснов (Ben Krasnow) собрал самодельный рентгеновский сканер. Бен не прекратил свои эксперименты с рентгеном и теперь представляет полноценный компьютерный томограф (авторское описание).
Пример работы томографа показан ниже. Сможете угадать, что (или кто) это?
Да, в роли подопытного выступала замороженная курица.
Принцип действия
Схема установки показана на рисунке ниже. Рентгеновская трубка с коллиматором, формирующим конусный пучок, просвечивает объект насквозь. Рентгеновские лучи, прошедшие через объект, создают изображение на люминесцентном экране, которое фотографируется цифровой камерой. Поворачивая объект, получают серию изображений, по которым в дальнейшем строится воксельная 3D-модель объекта и всей его внутренней структуры.
В реальность установка выглядит так:
Источник излучения
Источником рентгеновского излучения служит трубка, уже знакомая нам по прошлым проектам Бена.
Трубка помещена в металлический цилиндр с отверстием, который дает ей светить только туда, куда нужно. Источник питания трубки выдает напряжение 50 кВ при токе около 1 мА.
Экран
Рентгеновское излучение, прошедшее через объект, попадает на люминесцентный экран, заставляя последний светиться. Так как разные части объекта поглощают излучение в разной степени, на экране видна картинка, где более темные участки соответствуют более плотным частям.
Поворотный механизм
В медицинских томографах тело пациента остается неподвижным, а вокруг него вращается кольцо с рентгеновской трубкой и детекторами. Здесь же проще поворачивать наблюдаемый объект, не двигая остальную часть установки.
Объект расположен на поворотном столе, который приводится в движение шаговым двигателем. Двигатель управляется при помощи Arduino. Этот же контроллер служит для управления затвором камеры.
Шаг поворота составляет 8°, таким образом, за 1 оборот объекта делается серия из 45 снимков.
Обработка изображений
Томография не зря называется «компьютерной», ведь основная обработка данных производится программно. В медицинских томографах используется специализированный софт, сравнимый по стоимости с «железом». Бен обошелся подручными средствами.
Прежде всего, с помощью Photoshop (в режиме пакетной обработки) были убраны искажения перспективы, возникшие из-за того, что камера находится в стороне от экрана.
Затем необходимо по изображениям «на просвет» получить серию параллельных срезов объекта. Для этой цели служат алгоритмы, основанные на обратных преобразованиях Радона. Они позволяют, имея несколько проекций интегрального поглощения рентгеновских лучей, восстановить функцию распределения плотности внутри объекта.
Бен использовал Octave (опенсорсный аналог Матлаба) со специальной библиотекой. Полученная серия срезов выглядит так:
И наконец, для визуализации и преобразования стопки срезов в трехмерную модель был использован пакет 3D Slicer.
Видео
Демонстрация работы самодельного томографа:
Автор: Ocelot