BoofCV检测基准点的x和y坐标

时间:2016-10-16 06:58:29

标签: processing boofcv

我试图从Processing BoofCV中找到检测到的基准点的x和y坐标。

代码: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())
}

但是返回的值似乎很奇怪。

Screenshot: getX() getY() values - Processing BoofCV

有人能指出我正确的方向吗?提前致谢。

此致 小号

2 个答案:

答案 0 :(得分:2)

BoofCV Processing的最新github快照返回图像x和y像素。感谢Peter Abeles。

https://groups.google.com/forum/#!topic/boofcv/K56oTHyOVw0 https://forum.processing.org/two/discussion/comment/77018#Comment_77018

感谢大家的帮助。

干杯 小号

答案 1 :(得分:1)

您在世界框架中获取其位置的X和Y坐标而不是图像。要在图像中找到它的位置,您需要将3D世界点投射回相机。

易于使用的处理API太高级了,但这是你用Java做的。

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

targetToCamera是基准检测器返回的变换,点'p'将是基准点的中心。