Использование Python для определения морфологии различных частей объекта на изображении ⇐ Python

Программы на Python
Anonymous
Использование Python для определения морфологии различных частей объекта на изображении

Сообщение Anonymous »

У меня есть вопрос по анализу изображений/морфологии, и мне нужно решение на основе Python. Я астроном, пытающийся замаскировать следы космических лучей (полосы длиной от 1 до 100 пикселей) на своих изображениях. Я выделяю треки, используя технику фильтрации с порогом. Это работает довольно хорошо, за исключением случаев, когда трасса сталкивается с объектом (звездой или галактикой). Как вы можете видеть ниже, на моем треке появляются пятна (как на левом изображении) и кольца (как на правом изображении).

< img alt="полоса рядом со звездой" src="https://i.sstatic.net/AKn9U.png" />
[img]https://i.sstatic .net/Yi2Zk.png[/img]


На этих изображениях вы можете игнорировать волнистые линии и символы «X», черные квадраты — это мои замаскированные пиксели. Что я хотел бы сделать, так это отделить дорожки (длинные полосы) от пятен и колец (к вашему сведению, кольца появляются, потому что фильтрация повышает значимость краев объектов). Итак, мой вопрос заключается в том, как я могу классифицировать морфологию определенных частей маски и отделить капли/кольца от дорожки.

В случае, если это облегчит ответ на вопрос, вот маска для изображения слева:

Код: Выделить всё

spots=array([[False,False,False,False,False,False,False,False,False,False,False],
[False,False,False,False,False,False,False,False,False,False,False],
[False,False,False,False,True ,False,False,False,False,False,True ],
[False,False,True ,True ,True ,True ,False,False,False,True ,False],
[False,False,True ,True ,True ,True ,False,False,True ,True ,False],
[False,False,True ,True ,True ,True ,False,True ,True ,False,False],
[False,False,False,True ,True ,True ,True ,True ,False,False,False],
[False,False,False,False,False,True ,True ,True ,False,False,False],
[False,False,False,False,False,True ,True ,False,False,False,False],
[False,False,False,False,True ,True ,False,False,False,False,False],
[False,False,False,False,True ,False,False,False,False,False,False],
[False,False,False,True ,False,False,False,False,False,False,False]])
В идеале мне бы хотелось, чтобы дорожки были замаскированы, и когда они полностью пересекаются с объектом, как на изображении справа, я бы хотел замаскировать всю дорожку. , через объект, не маскируя ту часть объекта, на которую не влияет дорожка. Поэтому мне бы хотелось, чтобы окончательный результат по маске выглядел примерно так, как показанные здесь белые дорожки:

[img]https://i .sstatic.net/2F5AJ.png[/img]
Изображение


Спасибо!
-Адам

Подробнее здесь: https://stackoverflow.com/questions/235 ... n-an-image

Вернуться в «Python»