【问题标题】:How to use OpenCV from Xamarin (Android and iOS)?如何使用 Xamarin(Android 和 iOS)的 OpenCV?
【发布时间】:2023-04-08 23:25:01
【问题描述】:

我想为 iOS 和 Android 创建一个使用 Xamarin 的移动应用程序,并且我想调用一些 OpenCV 函数(例如,轮廓检测和透视变换)。

我大致了解从C#调用C++函数的过程,但是我不知道如何从为iOS和Android提供的OpenCV binaries中做到这一点。有一个fork of OpenCvSharp 支持 Xamarin.Android,但不支持 Xamarin.iOS。

我不打算将整个 OpenCV 库移植到 Xamarin(目前)。我只是想调用一小部分函数。

【问题讨论】:

    标签: c# c++ ios opencv xamarin


    【解决方案1】:

    对于 iOS,您应该自己为 Objective-C 提供绑定。这是一个如何做的例子,代码不是我的。

    https://github.com/trinnguyen/xamarin.ios-opencv

    这里有一篇文章描述了这些步骤: https://chamoda.com/how-to-use-opencv-with-xamarin-ios/

    [BaseType(typeof(NSObject))]
    interface OpenCV
    {
    
        [Export("version:")]
        NSString Version();
    
    }
    
    private OpenCV OpenCV = new OpenCV();
    
    Console.WriteLine(OpenCV.Version());
    

    【讨论】:

    • 我终于开始做这个了,经过几个小时的尝试,它奏效了。然而,这种方法的一个问题(我曾问过here)是我的应用程序最终大小超过 300 MB,因为 opencv2.framework 太大了。
    • 我认为您需要将 [Export("version:")] 更改为 [Export("version")],否则它会崩溃,因为它需要传递参数。
    猜你喜欢
    • 2017-01-27
    • 2013-06-16
    • 1970-01-01
    • 1970-01-01
    • 2016-01-06
    • 2019-11-08
    • 1970-01-01
    • 2016-02-22
    • 2017-11-18
    相关资源
    最近更新 更多