Конвертировать круговой график в горизонтальный график - PullRequest
0 голосов
/ 09 октября 2018

У меня есть график с круговой осью X и некоторыми объектами в нем.

  1. Я хочу преобразовать график и сделать его ось X горизонтальной.
  2. Я хочучтобы измерить высоту (расстояние в пикселях) каждого объекта над осью X.

Я пробовал это с массивными массивами, но смог получить только вертикальную разницу пикселей между осью и объектом, а не истиннуюминимальная разница пикселей.Я думаю, что я должен сделать итерацию по всем круговым точкам оси x и измерить расстояние до одного объекта, но как мне это сделать?

enter image description here

Править: Это оригинальное изображение

enter image description here

1 Ответ

0 голосов
/ 09 октября 2018

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

1 - преобразование обратно в декартово изображение

Это простое решение: преобразовать ваше полярное изображение обратно в декартовы координаты и вычислить расстояние до двух горизонтальных линий,Для этого вам понадобятся центр и радиусы двух ваших кругов, которые, как я полагаю, вы уже сделали с того момента, как нанесли их на изображение.Технические решения для деформации обсуждаются в этом вопросе SO: Перепроектирование полярной в декартову сетку

2 - Прямое геометрическое вычисление

Это еще прощечем первый пункт, и решение, которое вы могли бы реализовать непосредственно, если вам не нужна дальнейшая обработка.

Опять же, предполагая, что для каждого круга вы знаете положение (X, Y) его центра, а также его радиус R. Если у вас есть точка с координатами (x, y) на изображении, вы можетеВычислите расстояние до центра круга, используя простое евклидово вычисление расстояния: d = sqrt ((Xx) ** 2 + (Yy) ** 2).Расстояние до круга тогда просто Rd.Написано на python, используя numpy, что-то вроде:

def distToCircle(pt, center, R):
    d = np.linalg.norm(center-pt)
    return R-d
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...