iOS上的OpenCV相机预览拉长了

SKR*_*SKR 5 camera opencv ios

我已经按照OpenCV的文档来实现相机预览.在这里,CvVideoCamera初始化为UIIamgeView.我现在已经设置了UIImageView的约束来填充整个屏幕.

相机的初始化如下:

self.videoCamera = [[VideoCamera alloc] initWithParentView:imageView];
self.videoCamera.defaultAVCaptureDevicePosition = AVCaptureDevicePositionBack;
self.videoCamera.defaultAVCaptureSessionPreset = AVCaptureSessionPresetMedium;
self.videoCamera.defaultAVCaptureVideoOrientation = AVCaptureVideoOrientationPortrait;
self.videoCamera.defaultFPS = 30;
self.videoCamera.grayscaleMode = false;
self.videoCamera.delegate = self;

[self.videoCamera start];
Run Code Online (Sandbox Code Playgroud)

我还设置了contentMode: [imageView setContentMode:UIViewContentModeScaleAspectFill]

但是,相机预览仍然失真:

扭曲

为了比较相机应用程序:

正确的宽高比

小智 0

您需要调整defaultAVCaptureSessionPreset例如:

self.videoCamera.defaultAVCaptureSessionPreset = AVCaptureSessionPreset1280x720;

以下是支持 iOS 9 的设备上所有经过测试的相机会话预设的表格

iOS 查找设备摄像头分辨率的方法