10

我目前使用的应用程序具有使用 Zxing 库 ( http://code.google.com/p/zxing/ )连续扫描 QR/条形码的主要功能。对于连续帧捕获,我用来初始化 AVCaptureSession 和 AVCaptureVideoOutput,在苹果问答http://developer.apple.com/iphone/library/qa/qa2010/qa1702.html中描述的 AVCaptureVideoPreviewLayer 。

我的问题是,当我以前运行相机预览时,我通过视频设备看到的图像比我们通过 iPhone 的静态相机看到的图像大得多(1.5 倍)。我们的客户在扫描时需要将 iPhone 与条码保持 5 厘米左右的距离,但如果您将 iPhone 保持在该参数,则整个 QR 码将不可见,并且解码失败。为什么 iPhone 4 中的 Video camera 会放大图像(通过 AVCaptureVideoPreviewLayer 查看)?

4

3 回答 3

17

这是 AVCaptureSession 视频预设的功能,可使用 .sessionPreset 属性访问。例如,在配置您的 captureSession 之后,但在启动它之前,您将添加

captureSession.sessionPreset = AVCaptureSessionPresetPhoto;

请参阅此处的文档:

iOS 参考文档

视频的默认预设是 1280x720(我认为),这比相机支持的最大分辨率低。通过使用“照片”预设,您可以获得原始相机数据。

于 2011-02-07T21:45:57.783 回答
6

您会看到与内置 iPhone 相机应用程序相同的行为。在静态和视频捕捉模式之间切换,您会注意到默认缩放级别发生了变化。您在静止模式下会看到更宽的视野,而视频模式会放大一点。

我的猜测是,连续视频捕获需要使用较小的相机传感器区域才能以最佳方式工作。如果它使用整个传感器,系统可能无法维持 30 fps。使用较小的传感器区域会产生“放大”场景的效果。

于 2010-11-12T01:22:23.150 回答
4

我再次回答我自己的问题。即使在 Apple Dev 论坛上也没有回答,因此我直接向 Apple 提交了技术支持请求,他们回复说这是一个已知问题,将在未来版本中修复并发布。因此,除了观望之外,我们无能为力。

于 2010-09-29T14:12:55.827 回答