У меня есть определенный набор данных изображений, в котором есть аннотации к объектам на этом изображении. Аннотации, как в [xmin, xmax, ymin, ymax]
для объекта на изображении. Как мне преобразовать эти координаты в их новые значения, когда я изменяю размер изображения, сохраняя соотношение сторон?
Преобразование аннотаций для объекта на изображении
comment
вы пытаетесь извлечь вспомогательное изображение с координатами? потому что это отличается от изменения размера.
- person Jisu Hong   schedule 12.07.2017
comment
На самом деле, нет. Допустим, на изображении есть объект. Я хочу изменить размер изображения. После изменения размера изображения координаты ограничивающей рамки этого объекта на изображении изменяются. Как мне получить новые координаты объекта на изображении?
- person harman   schedule 12.07.2017
comment
Вы изменяете размер изображения? потому что вы также можете сжимать или расширять координаты объекта вместе с изменением размера. Например, если вы изменяете размер изображения на 0,5, координаты также должны быть изменены на 0,5.
- person Jisu Hong   schedule 12.07.2017
comment
Да, я меняю размер изображений.
- person harman   schedule 12.07.2017
comment
затем независимо от того, какой коэффициент вы изменяете, умножьте их на свои xmin, xmax, ymin и ymax.
- person Jisu Hong   schedule 12.07.2017
comment
Хорошо, я понял. Спасибо
- person harman   schedule 12.07.2017
comment
Рад, что помог. сохраняй кодирование, оставайся спокойным.
- person Jisu Hong   schedule 12.07.2017
comment
Мне нужны квадратные изображения, что, если исходные изображения не квадратной формы?
- person harman   schedule 12.07.2017
comment
вы все еще можете использовать прямоугольник, чтобы получить квадратное изображение
- person Jisu Hong   schedule 12.07.2017
comment
Давайте продолжим это обсуждение в чате.
- person harman   schedule 12.07.2017
Ответы (2)
Если вы просто изменяете размер, используйте изменение размера. Например:
using namespace cv;
Mat img;
img = imread("image.jpg", CV_LOAD_IMAGE_COLOR);
Mat dst;
resize(img, dst, Size(xmax-xmin,ymax-ymin));
Если вы извлекаете вспомогательное изображение, используйте Rect. Например:
using namespace cv;
Mat original_img;
Rect roi;
roi.x = xmin;
roi.y = ymin;
roi.width = xmax-xmin;
roi.height = ymax-ymin;
Mat subimage = original_img(roi);
Если вы пытаетесь узнать координаты (xmin, xmax, ymin, ymax) после изменения размера,
умножьте их на коэффициент изменения размера.
Например, если размер изменен в 0,5 раза,
координаты (xmin, xmax, ymin, ymax) теперь равны (xmin * 0,5, xmax * 0,5, ymin * 0,5, ymax * 0,5).
person
Jisu Hong
schedule
12.07.2017
вы также можете использовать этот пакет: https://github.com/italojs/resize_dataset_pascalvoc его легко использовать python3 main.py -p <IMAGES_&_XML_PATH> --output <IMAGES_&_XML> --new_x <NEW_X_SIZE> --new_y <NEW_X_SIZE> --save_box_images <FLAG>"
person
Italo José
schedule
13.02.2019