Как я могу преобразовать форму [xmin ymin xmax ymax] в [x y width height], нормализованную в изображении?

Я создаю пользовательское приложение технического зрения с помощью Microsoft CustomVision.ai.

Я использую это руководство < / а>.

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

У меня есть 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, нормализованные согласно предоставленному руководству.

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


person glima    schedule 11.07.2019    source источник
comment
что означают x и y в этом случае?   -  person BlueRine S    schedule 11.07.2019


Ответы (1)


Предполагая, что 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

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

person N. Smith    schedule 11.07.2019