- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
有一段时间我在尝试实现 ICvCameraViewListener 时遇到问题。我继承它,实现它的方法,但根本没有调用它们。尝试了 Activity 和 JavaCameraView。
查看OpenCV for Android java示例代码,有一行:mOpenCvCameraView.setCvCameraViewListener(this);但是在 JavaCameraView 和 CameraBridgeViewBase 中都没有这样的方法。
我可以通过 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/
有一段时间我在尝试实现 ICvCameraViewListener 时遇到问题。我继承它,实现它的方法,但根本没有调用它们。尝试了 Activity 和 JavaCameraView。 查看OpenC
我是一名优秀的程序员,十分优秀!