Как найти угол разных краев изображения
У меня есть изображение, на котором есть несколько звездных полос, с помощью обнаружения краев и не максимального подавления я могу преобразовать его в изображение в градациях серого с краями. Мне нужно получить угол относительно оси x, на которую указывают полосы. Это мои изображения
Из этого изображения я создаю изображение, содержащее края. (Ориентация отличается, потому что программное обеспечение ds9 для просмотра астрономических изображений отображает ее с более низкими координатами начала координат)
Я пробовал несколько способов, включая компоненты PCA и Connected, но результаты не совпадают. Все, что мне нужно, это средний угол, под которым полосы ориентированы с минимально возможной ошибкой. Буду признателен, если кто-нибудь поможет мне с этим
1 ответ
Имхо, одним из вариантов может быть преобразование каждой полосы в 2d-вектор и вычисление среднего углового коэффициента.
Для получения строк я предлагаю изучить метод линий Хафа https://docs.opencv.org/3.4/d9/db0/tutorial_hough_lines.html.
С некоторой очисткой изображения и небольшой настройкой параметров функции (особенно значений минимальной длины и максимального зазора) вы сможете получить эти векторы.
Затем вычисляем для каждого вектора наклон (y2-y1)/(x2-x1), берем среднее и готово