Как найти перпендикулярные линии в полярных координатах?

Скажем, у меня есть линии, показанные на рисунке ниже, представленные в формате полярных координат (rho и theta). Эти строки являются выводом функции HoughLines OpenCV после некоторой постобработки. (Извините, я пока не могу вставлять изображения.)

То, что я хочу сделать, это, учитывая любую одну строку, найти все линии, которые перпендикулярны этой линии, как показано на втором изображении ниже.

Я понимаю, как это сделать с помощью декартовых линий, но у меня возникли проблемы с тем, чтобы сосредоточиться на том, какие свойства rho и theta должны быть перпендикулярны двум тета-линиям, хотя я понимаю, как полярные линии работают, по крайней мере, принципиально. Извините, если это элементарный материал, но я не могу найти какое-либо объяснение этого онлайн в любом месте. Нужно ли сначала преобразовывать линии в декартовы координаты, или есть какой-то более простой способ сделать это? Любая помощь будет высоко ценится, спасибо!

1 ответ

Чтобы получить перпендикулярные линии в полярных координатах, вы просто берете тета для первой строки и находите все линии, чья тета = +/- 90° от первой тета.

Вы должны нормализовать углы, чтобы они находились в пределах 0°-360° или какого-либо другого диапазона при сравнении их.

Так что если в строке 1 есть тета line1.Theta
Тогда угол к другой линии a = (line2.Theta - line1.Theta)
и вам нужны все линии, где а близко к -90°, 90°, 270°, -270°, ...
в зависимости от того, как вы нормализуете свои углы

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