Opencv cvvideocamera输出捕获会话

时间:2012-11-14 20:36:53

标签: iphone ios opencv avcapturesession

我正在使用openCV进行一些实时视频处理。事实上,在进行处理时,屏幕有点不连贯。我想做的仍然是像往常一样通过CvVideoCameraDelegate方法处理图像,但是向用户显示捕获会话视频输出,应该不那么不连贯。

我在委托回调方法中进行所有视频处理

- (void)processImage:(Mat&)image;

因此,当我加载视图时,我尝试将其设置为捕获会话正在输出的内容。看起来您可以像这样访问CVVideoCamera的捕获会话:

AVCaptureSession *session = videoCamera.captureSession;

那么,我在我的布局文件中有一个视图,我想将它连接到名为baseView的视图。我试着这样做:

AVCaptureVideoPreviewLayer *previewLayer = [AVCaptureVideoPreviewLayer layerWithSession:session];
CGRect screenRect = baseView.bounds;
previewLayer.frame = screenRect; // Assume you want the preview layer to fill the view.
[baseView.layer addSublayer:previewLayer];

然而,这不起作用。只是一个纯白色的屏幕。我可以说,视频处理仍在后台进行,但无论如何都没有输出视频。

编辑:请注意,我之前没有设置额外的捕获会话,因为我试图限制CPU任务

1 个答案:

答案 0 :(得分:1)

好的我明白了:

我尝试输入

BOOL loaded = videoCamera.captureSessionLoaded;

事实证明相机没有满载。事实上,在你开始捕捉之前它不会完全加载(显然我猜?)

所以,只要我将代码放在

之下
[self.videoCamera start];

一切似乎都按预期工作