BoofCV обнаруживает координаты x и y опорных точек

Я пытаюсь найти координаты x и y обнаруженных проверочных точек из Processing BoofCV.

Код: https://github.com/lessthanoptimal/BoofProcessing/tree/master/examples/Fiducials

Из приведенного выше примера я сделал это, чтобы получить координаты X и Y.

for( FiducialFound f : found ) {
  detector.render(this,f);
  println(f.getFiducialToCamera().getTranslation().getX() + " " + f.getFiducialToCamera().getTranslation().getY())
}

Но возвращенные значения кажутся странными.

Снимок экрана: значения getX () getY () - обработка BoofCV

Может ли кто-нибудь указать мне правильное направление? Заранее спасибо.

С уважением S

2 ответа

Последний снимок GitHub BoofCV Processing возвращает изображение x и y пикселей. Спасибо Петру Абелесу.

https://groups.google.com/forum/ https://forum.processing.org/two/discussion/comment/77018

Спасибо всем за помощь.

Приветствия S

Вы получаете координаты X и Y его положения в рамке мира, а не на изображении. Чтобы найти его местоположение на изображении, вам нужно спроецировать 3D-точку мира обратно в камеру.

Простой в использовании API обработки - это слишком высокий уровень, но вот как вы это делаете в Java.

WorldToCameraToPixel worldToPixel = PerspectiveOps.createWorldToPixel(intrinsic, targetToCamera);
worldToPixel.transform(c,p);

targetToCamera - это преобразование, которое возвращает проверочный детектор, и точка 'p' будет центром проверочного пункта.

Другие вопросы по тегам