Как я могу преобразовать форму [xmin ymin xmax ymax] в [xy width height], нормализованную в изображении? - PullRequest
1 голос
/ 11 июля 2019

Я создаю приложение с настраиваемым видением с помощью CustomVision.ai .

от Microsoft. Я использую этот урок .

Когда вы отмечаете изображенияв проектах обнаружения объектов необходимо указать регион каждого помеченного объекта с помощью нормализованных координат.

У меня есть файл XML, содержащий аннотации к изображению, например, с именем sample_1.jpg:

<annotation>
        <filename>sample_1.jpg</filename>
    <size>
        <width>410</width>
        <height>400</height>
        <depth>3</depth>
    </size>
    <object>
        <bndbox>
            <xmin>159</xmin>
            <ymin>15</ymin>
            <xmax>396</xmax>
            <ymax>302</ymax>
        </bndbox>
    </object>
</annotation>

Мне нужно преобразовать координаты ограничивающего прямоугольника из координат xmin, xmax, ymin, ymax в координаты x, y, w, h, нормализованные в соответствии с предоставленным руководством.

Может кто-нибудь предоставить мне функцию преобразования?

1 Ответ

1 голос
/ 11 июля 2019

Предполагая, что x / ymin и x / ymax - ваши ограничивающие углы, верхний левый и нижний правый соответственно.Затем:

x = xmin
y = ymin
w = xmax - xmin
h = ymax - ymin

Затем необходимо их нормализовать, что означает, что они должны быть представлены как пропорция всего изображения, поэтому просто разделите каждое значение на соответствующий размер из указанных выше значений:

x = xmin / width
y = ymin / height
w = (xmax - xmin) / width
h = (ymax - ymin) / height

Это предполагает начало слева вверху, вам придется применить коэффициент смещения, если это не так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...