首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用BoofCV跟踪快速移动的基准点

使用BoofCV跟踪快速移动的基准点
EN

Stack Overflow用户
提问于 2016-10-05 08:30:22
回答 1查看 141关注 0票数 2

我试着用打印的二进制基准来追踪一个人的头部。当人移动缓慢时,它可以很好地跟踪,但当他们快速移动头部时,它会失去轨迹,当他们停止移动时,它又会恢复轨迹。当人们快速移动时,我可以做些什么来跟踪他们?

作为参考,这里有一个截图和代码:

代码语言:javascript
复制
    camera = UtilWebcamCapture.openDefault(1920, 1080);

    intrinsicParameters = new IntrinsicParameters();
    intrinsicParameters.setCx(camera.getViewSize().getWidth()/2f);
    intrinsicParameters.setCy(camera.getViewSize().getHeight()/2f);
    intrinsicParameters.setFx(1);
    intrinsicParameters.setFy(1);
    intrinsicParameters.setWidth((int)camera.getViewSize().getWidth());
    intrinsicParameters.setHeight((int)camera.getViewSize().getHeight());

    detector = FactoryFiducial.squareBinary(
            new ConfigFiducialBinary(1),
            ConfigThreshold.local(ThresholdType.LOCAL_SQUARE, 10),
            //ConfigThreshold.fixed(100),
            GrayU8.class);
    detector.setIntrinsic(intrinsicParameters);
    ...
    while (true) {
        BufferedImage image = camera.getImage();
        GrayU8 input = ConvertBufferedImage.convertFrom(image, (GrayU8) null);

        WorldToCameraToPixel transform;

        try {
            detector.detect(input);

            Se3_F64 targetToSensor = new Se3_F64();
            for (int i = 0; i < detector.totalFound(); i++) {
                detector.getFiducialToCamera(i, targetToSensor);

                transform = PerspectiveOps.createWorldToPixel(intrinsicParameters, targetToSensor);
                Point2D_F64 centre = transform.transform(
                        new Point3D_F64(0, 0, 0));

                System.out.println(centre);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2016-10-07 02:21:40

我解决了这个问题,使用基准的初始位置创建了一个对象跟踪器,并在用户快速移动时使用它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39863708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档