我试图从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())
}
但是返回的值似乎很奇怪。
有人能指出我正确的方向吗?提前致谢。
此致 小号
答案 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'将是基准点的中心。