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())
}
Но возвращенные значения кажутся странными.
Может ли кто-нибудь указать мне правильное направление? Заранее спасибо.
С уважением 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' будет центром проверочного пункта.