首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenCV视频处理教程

OpenCV视频处理教程
EN

Stack Overflow用户
提问于 2013-01-11 08:33:26
回答 1查看 3.9K关注 0票数 2

我跟踪关于iOS站点的OpenCV视频处理教程并设法在设备上编译和安装它。然而,当我点击“开始”按钮时,没有任何可见的事情发生。显然,我的- (void)processImage:(Mat&)image回调从未被调用过。你能给我一些提示吗?有什么问题?

有些事我查过了:

  • 调用actionStart,两条日志行都打印是
  • 当分配给self时,self.videoCamera.delegate对象是有效的
  • imageView在屏幕上是有效的和可见的。
  • 当调用videoCamerastart方法时初始化

我使用iPhone 3GS进行测试。

以下是我的ViewController.h的完整来源:

代码语言:javascript
复制
#import <UIKit/UIKit.h>
#import <opencv2/highgui/cap_ios.h>

@interface ViewController : UIViewController <CvVideoCameraDelegate>
{
    IBOutlet UIImageView* imageView;
    IBOutlet UIButton* button;

    CvVideoCamera* videoCamera;
}

- (IBAction)actionStart:(id)sender;

@property (nonatomic, strong) CvVideoCamera* videoCamera;

@end

和ViewController.mm:

代码语言:javascript
复制
@implementation ViewController

@synthesize videoCamera;

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.videoCamera = [[CvVideoCamera alloc] initWithParentView:imageView];
    self.videoCamera.delegate = self;

    self.videoCamera.defaultAVCaptureDevicePosition = AVCaptureDevicePositionFront;
    self.videoCamera.defaultAVCaptureSessionPreset = AVCaptureSessionPreset352x288;
    self.videoCamera.defaultAVCaptureVideoOrientation = AVCaptureVideoOrientationPortrait;
    self.videoCamera.defaultFPS = 30;
    self.videoCamera.grayscaleMode = NO;

}

#pragma mark - UI Actions

- (IBAction)actionStart:(id)sender;
{
    [self.videoCamera start];
    NSLog(@"video camera running: %d", [self.videoCamera running]);
    NSLog(@"capture session loaded: %d", [self.videoCamera captureSessionLoaded]);
}

#pragma mark - Protocol CvVideoCameraDelegate

- (void)processImage:(cv::Mat&)image
{
    // Do some OpenCV stuff with the image
    cv::Mat image_copy;
    cvtColor(image, image_copy, CV_BGRA2BGR);

    // invert image
    bitwise_not(image_copy, image_copy);
    cvtColor(image_copy, image, CV_BGR2BGRA);
}

@end
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-11 10:11:18

我在iPhone 4上进行了测试,它运行得很好。也许iPhone 3GS没有正面摄像头?然后,您必须将这一行:self.videoCamera.defaultAVCaptureDevicePosition = AVCaptureDevicePositionFront改为self.videoCamera.defaultAVCaptureDevicePosition = AVCaptureDevicePositionBack

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14274326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档