Соотношение сторон = высота/ширина всегда> 1 (в большинстве случаев даже> 2), поэтому должно быть ясно/точно, как бы я хотел повернуть.
У меня есть объект RotatedRect
в OpenCV/Java.
Я могу получить массив из 4 объектов типа Point, а Point определяет значения x/y.
Теперь я хотел бы отсортировать эти 4 точки так, чтобы верхняя левая точка была первым элементом массива, а затем по часовой стрелке, чтобы верхняя нижняя точка была четвертым элементом.
Я предполагаю, что прямоугольники не сильно вращаются (только несколько небольших углов), например
В примере я указал, какую точку я бы обозначил как верхний левый (TL).
Как это сделать?
Вам не нужно указывать мне что-то конкретно об OpenCV и т.д., Просто предположим, что у вас будет два массива
int[] x = new int[4];
int[] y = new int[4];
Тогда как точка n
-th имеет координаты (x[n-1], y[n-1])
. Затем я могу сделать это специально для OpenCV.