Как я могу получить нормализованные координаты от объекта в изображениях - PullRequest
1 голос
/ 03 мая 2019

Я создаю приложение под заказ с Microsoft CustomVision.ai.

Я использую этот учебник: https://docs.microsoft.com/en-us/azure/cognitive-services/custom-vision-service/csharp-tutorial-od

В какой-то момент мне нужно:

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

И для этого мне нужно написать следующий код:

Dictionary<string, double[]> fileToRegionMap = new Dictionary<string, double[]>() {
// FileName, Left, Top, Width, Height
{"scissors_1", new double[] { 0.4007353, 0.194068655, 0.259803921, 0.6617647 } },
{"scissors_2", new double[] { 0.426470578, 0.185898721, 0.172794119, 0.5539216 } },
{"scissors_3", new double[] { 0.289215684, 0.259428144, 0.403186262, 0.421568632 } }
...

, где double - это нормализованные координаты объекта внутри изображения,

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

1 Ответ

0 голосов
/ 03 мая 2019

Нормализованные координаты - это координаты в диапазоне от 0,0 до 1,0 (исключая).

Если у вас есть изображение с координатами в диапазоне

(X = 0..Width, Y = 0..Height)

преобразовать координаты с помощью

double x_normalized = X / Width;
double y_normalized = Y / Height;

Это предполагает, что либо координата X или Y, либо Width, либо Height задается как double, либо float. Если они даны как int, используйте

double x_normalized = (double)X / Width;
double y_normalized = (double)Y / Height;

то же самое относится к ширине или высоте объекта внутри изображения

double object_width_normalized = object_width / Width;
double object_height_normalized = object_height / Height;

Обратите внимание: если координаты даны как int, обычно они находятся в диапазоне [0..Width - 1, 0..Height - 1, так что при делении получается значение 0.0 <= value < 1.0.

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