导入 CvVideoCamera

importing CvVideoCamera

我是 OpenCV 的新手,我很难在我的 swift 项目中使用 CvVideoCamera!

我正在使用 openCV 3.2.0 和 swift 3.1

我有 OpenCVWrapper 文件,而且我将它导入我的桥接头文件中。 在我的 OpenCVWrapper.mm 文件中,我导入 opencv2/videoio/cap_ios.h 但仍然在我的 swift 视图控制器中,我没有得到任何 CvVideoCamera 类型!!

这是我的包装器和桥接头

OpenCVWrapper.h

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

@interface OpenCVWrapper: NSObject
@end

OpenCVWrapper.mm

#include <opencv2/opencv.hpp>
#include "OpenCVWrapper.h"
#import <opencv2/videoio/cap_ios.h>

using namespace cv;
using namespace std;

@implementation OpenCVWrapper : NSObject


@end

和CSOpenCV-桥接-Header.h

#import "OpenCVWrapper.h"

谁能告诉我为什么我不能在我的 swift 视图控制器中启动 CvVideoCamera

p.s:我也尝试直接在我的桥接头文件中导入 opencv2/videoio/cap_ios.h 但出现编译器错误

error base.hpp header must be compiled as C++

好吧,在放弃 swift 以使用 opencv 之后,我在 github 上找到了一个示例应用程序,它使用 AVCaptureSession 和 AVCaptureVideoDataOutput 获取摄像头馈送,然后使用

func captureOutput(_ captureOutput: AVCaptureOutput!, didOutputSampleBuffer sampleBuffer: CMSampleBuffer!, from connection: AVCaptureConnection!)

从会话中获取示例缓冲区。然后使用 opencvwrapper 将 CMSampleBuffer 转换为 cv::Mat.

查看 here 示例代码。