gpt4 book ai didi

android - Xamarin OpenCV ICvCameraViewListener

转载 作者:搜寻专家 更新时间:2023-11-01 08:44:38 27 4
gpt4 key购买 nike

有一段时间我在尝试实现 ICvCameraViewListener 时遇到问题。我继承它,实现它的方法,但根本没有调用它们。尝试了 ActivityJavaCameraView

查看OpenCV for Android java示例代码,有一行:mOpenCvCameraView.setCvCameraViewListener(this);但是在 JavaCameraViewCameraBridgeViewBase 中都没有这样的方法。

我可以通过 OnPreviewFrame() 回调方法,但是如果我必须自己将 byte[] 转换为 Mat,那么 ICvCameraViewListener 接口(interface)的意义何在。

这种替代方法也会产生一些意想不到的结果。

最佳答案

AlessandroRizzotto 分享经验后在 Xamarin 官方论坛上,我们针对这个问题提出了解决方案。

所以问题在于解决源 OpenCV 和转换代码之间的 API 差异。由于 setCvCameraViewListener 在 OpenCV 中被设置为 private/protected,它没有被转换为 c#。为了克服这个问题,绑定(bind)项目(包含 OpenCV 源的项目)需要一些额外的努力。

在 Transforms/Metadata.xml 中应添加下一个代码 fragment :

<add-node path="/api/package[@name='org.opencv.android']/class[@name='CameraBridgeViewBase']">
<method name="setCvCameraViewListener" return="void" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" >
<parameter name="listener" type="org.opencv.android.CameraBridgeViewBase.CvCameraViewListener"/>
</method>
</add-node>

在那之后,您将能够访问缺少的方法,其他一切都像魅力一样工作。

整个讨论可以在这个 address 上找到

关于android - Xamarin OpenCV ICvCameraViewListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29658440/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com