Правильный способ получить беззнаковые углы между 0 и 180 для гистограммы градиентов - PullRequest
0 голосов
/ 29 января 2019

В настоящее время у меня есть код, который вычисляет величину и ориентацию по производным Собеля.

mag, ang = cv2.cartToPolar(gx, gy, angleInDegrees=True)
ang = ang.clip(min=0, max=179.99999)

Короче говоря, как я могу заставить углы быть без знака и между [0, 180) градусами без отсечения, котороеПохоже, что это испортило распределение гистограммы.

Есть ли функция numpy, которая принимает угол больше 180, например 200, и выделяет 160, или мне нужно самому кодировать что-то подобное.

Возможно ли, чтобы массив numpy содержал только значения от -180 до 180, и тогда я мог бы просто взять значение abs.

1 Ответ

0 голосов
/ 29 января 2019

Вместо ang = ang.clip(min=0, max=179.99999) используйте

ang = ang % 180

% - это операция по модулю в Python.Это преобразует, например, -135 в 45, что, как я подозреваю, является тем, что вы хотите.То есть оба эти угла соответствуют линии с наклоном 1.

...