Как найти угол разных краев изображения

У меня есть изображение, на котором есть несколько звездных полос, с помощью обнаружения краев и не максимального подавления я могу преобразовать его в изображение в градациях серого с краями. Мне нужно получить угол относительно оси x, на которую указывают полосы. Это мои изображения

Из этого изображения я создаю изображение, содержащее края. (Ориентация отличается, потому что программное обеспечение ds9 для просмотра астрономических изображений отображает ее с более низкими координатами начала координат)

Я пробовал несколько способов, включая компоненты PCA и Connected, но результаты не совпадают. Все, что мне нужно, это средний угол, под которым полосы ориентированы с минимально возможной ошибкой. Буду признателен, если кто-нибудь поможет мне с этим

1 ответ

Имхо, одним из вариантов может быть преобразование каждой полосы в 2d-вектор и вычисление среднего углового коэффициента.

Для получения строк я предлагаю изучить метод линий Хафа https://docs.opencv.org/3.4/d9/db0/tutorial_hough_lines.html.

С некоторой очисткой изображения и небольшой настройкой параметров функции (особенно значений минимальной длины и максимального зазора) вы сможете получить эти векторы.

Затем вычисляем для каждого вектора наклон (y2-y1)/(x2-x1), берем среднее и готово

Другие вопросы по тегам