Я хочу создать программу маркировки изображений с opencv c ++ для маркировки изображений для детектора объектов yolo, но я изо всех сил пытаюсь преобразовать координаты прямоугольника (x1, y1, x2, y2) в формат yolo, который является "объектным классом x_center y_center ширина высота". И согласно документации x_center и y_center находятся в центре прямоугольника (не являются верхним левым углом).
Я пробовал этот код на уже помеченном изображении
double centerX = (x1 + x2) / (2.0 * imageWidth);
double centerY = (y1 + y2) / (2.0 * imageHeight);
double width = double(abs(x2 - x1) / imageWidth);
double height = double(abs(y2- y1) / imageHeight);
и получил 0 0.396759 0.278906 0.0109375 0.326852
, который отличается от 0 0.40703125 0.5194444444444445 0.25364583333333335 0.5851851851851851
. Как заставить его работать?