У меня возникли проблемы с формулировкой решения проблемы, и я действительно не знаю правильных ключевых слов для поиска, поэтому я прихожу сюда за помощью.Custom Polygon Image Boolean Mask
У меня есть изображение астрономии, которое имеет звезды, сопоставленные с изображением, что по существу говорит, что у меня есть изображение с набором точек, случайно распределенных по нему с координатами x и y пикселей. Единственная проблема заключается в том, что некоторые из этих «звезд» - это просто плохие обнаружения, и наши попытки отфильтровать их, а также сохранять хорошие моменты, так как не дают результатов блеска. Эти точки исходят из плохих столбцов пикселей или звезд переднего плана, которые насыщают тепловизор.
Я хочу, чтобы затем я смог заглянуть в изображение вручную, указав формы, связанные координатами, которые исключат любые точки из этих областей. Например, у меня есть какая-то большая взорванная дифракционная звездочка, которую я хочу поместить вокруг нее какую-то квадратную звезду. Другой - некоторый наклонный плохой столбец, который я хочу исключить, поэтому я хочу поставить вокруг него ромб и исключить все плохие точки внутри него.
Это равносильно тому, что я хочу создать какую-то многоугольную маску, заданную набором точек соединения, и иметь возможность применить это к изображению, где оно будет исключать те точки внутри.
Просто сделав некоторый мозговой штурм и попытавшись найти что-то в Интернете, я подумал о том, чтобы создать какой-то пользовательский объект полигона, который может быть применен ко всем точкам, что, таким образом, уменьшает плохие точки на одной фигуре за раз.
Единственная проблема - мне трудно представить, как я это сделаю. Есть ли хорошие ресурсы или советы для реализации такой маски? Иначе, есть ли лучшая техника для того, чего я пытаюсь достичь?
Numpy имеет маскирующие особенности. Но я не думаю, что они вам даже нужны. Вы могли бы просто установить части вашего изображения на ноль, если я правильно понял вас. Если поле не изменяется, вы можете сделать это программно. Если апараты квадратные, вы можете даже использовать операции 'slicing', как в' aa [13:20, 33:40] = 0', где 'aa' - ваш массив. Если вы хотите сделать это интерактивно, нажав на пиксели, найдите пользовательские обработчики событий (http://matplotlib.org/users/event_handling.html) – roadrunner66
Благодарим вас за комментарий. У меня была та же идея, что было бы здорово, если бы я мог сделать это в интерактивном режиме, но, к сожалению, сейчас я не могу сказать что-то подобное. Что, может быть, недостаточно ясно, так это то, что мой набор точек имеет точки X, Y, соответствующие изображению, но отличные от того, что они независимы друг от друга. Я нашел метод, называемый point-in-polygon, который дает мне именно то, что мне нужно, и я нахожусь во время написания этого в настоящее время. – Tristan