10

我的CvVideoCamera自动旋转,我不希望它。这已在 bugtracker 上提出,但有一段时间没有活动。

4

3 回答 3

27

子类CvVideoCamera,只需删除轮换代码。我希望我的方向始终是纵向的,所以这很简单:

MyCvVideoCamera.h

#import <opencv2/highgui/cap_ios.h>

@interface MyCvVideoCamera : CvVideoCamera

- (void)updateOrientation;
- (void)layoutPreviewLayer;

@property (nonatomic, retain) CALayer *customPreviewLayer;

@end

MyCvVideoCamera.m

#import "MyCvVideoCamera.h"

@implementation MyCvVideoCamera

- (void)updateOrientation;
{
    // nop
}
- (void)layoutPreviewLayer;
{
    if (self.parentView != nil) {
        CALayer* layer = self.customPreviewLayer;
        CGRect bounds = self.customPreviewLayer.bounds;
        layer.position = CGPointMake(self.parentView.frame.size.width/2., self.parentView.frame.size.height/2.);
        layer.bounds = bounds;
    }
}
@end
于 2013-02-14T14:21:38.610 回答
3

为了使它起作用,我必须添加:

@protocol CvVideoCameraDelegateMod <CvVideoCameraDelegate>
@end

到上面描述的 MyCvVideoCamera.h

@synthesize customPreviewLayer = _customPreviewLayer;

到 MyCvVideoCamera.m

于 2014-03-01T23:42:01.080 回答
3

快速修复在初始化 CVVideoCamera 之前添加这些行

NSNumber *value = [NSNumber numberWithInt:UIInterfaceOrientationPortrait]; [[UIDevice currentDevice] setValue:value forKey:@"orientation"];

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

于 2017-01-27T07:38:15.980 回答