加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在Swift iOS中使用OpenCV

发布时间:2020-12-14 06:08:26 所属栏目:百科 来源:网络整理
导读:在我的xcode项目中添加OpenCV 2框架后,我试图搜索samlpes或教程与swift集成。 有什么好的教程同样吗? OpenCV是用C编写的框架。苹果的 reference告诉我们 You cannot import C++ code directly into Swift. Instead,create an Objective-C or C wrapper for
在我的xcode项目中添加OpenCV 2框架后,我试图搜索samlpes或教程与swift集成。

有什么好的教程同样吗?

OpenCV是用C编写的框架。苹果的 reference告诉我们

You cannot import C++ code directly into Swift. Instead,create an Objective-C or C wrapper for C++ code.

所以你不能在一个swift项目中直接导入和使用OpenCV,但这实际上并不坏,因为你(需要)继续使用框架的C语法,这是在网络上有很多文档。

那么你怎么进行呢?

>创建一个新的Objective-C类(.h,.mm)

OpenCVWrapper.h

#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>

@interface OpenCVWrapper : NSObject

    + (UIImage *)processImageWithOpenCV:(UIImage*)inputImage;

@end

OpenCVWrapper.mm(您还需要向项目添加一个UIImage OpenCV类别)

#include "OpenCVWrapper.h"
#import "UIImage+OpenCV.h"

#include <opencv2/opencv.hpp>

using namespace cv;
using namespace std;

@implementation OpenCVWrapper : NSObject

    + (UIImage *)processImageWithOpenCV:(UIImage*)inputImage {
        Mat mat = [inputImage CVMat];

        // do your processing here
        ...

        return [UIImage imageWithCVMat:mat];
    }

@end

>更新Bridging-Header导入我们新创建的包装器(#import“OpenCVWrapper.h”)
>在你的Swift文件中使用你的包装

let image = UIImage(named: "image.jpeg")
let processedImage = OpenCVWrapper.processImageWithOpenCV(image)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读