1

我正在尝试从 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())
}

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

屏幕截图:getX() getY() 值 - 处理 BoofCV

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

问候小号

4

2 回答 2

2

BoofCV Processing 的最新 github 快照返回图像 x 和 y 像素。感谢彼得·阿贝尔斯。

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

谢谢大家的帮助。

干杯小号

于 2016-10-20T15:43:00.663 回答
1

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

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

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

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

于 2016-10-17T18:30:50.910 回答