1

我正在编写一个应用程序,它对从 AVCaptureSession 中的 AVCaptureVideoDataOutput 获取的图像数据进行一些实时处理。

我目前能够启动会话,添加输入和输出,然后检索图像数据,将其转换为 UIImage 并将其实时显示在屏幕上。

我遇到的主要问题是图像的方向很尴尬。它是旋转和镜像的,而且看起来也是倾斜的。我已经对其进行了一些研究,发现了一些相关 问题,并且我尝试了建议的代码,但它不能解决旋转问题。

我认为链接的问题假设 UIImages 来自其他地方(也许是更高级别的 api,它自动向图像添加更多信息,例如方向。或者可能是因为我从视频输出提要中获取它?

我并不是真的在寻找修复它的代码(尽管带注释的示例会非常有帮助),而是很好地解释了以这种方式获得的图像的生命周期的工作原理;处理它的推荐方法是什么,以便它可以以对手机方向有意义的方式显示在屏幕上?返回的 CGImageRef 的方向是什么?等等

我有一个先前的问题,其中包含我用来设置 AVCaptureSession 的代码。

4

1 回答 1

3

视频连接通常是横向的(例如 AVCaptureVideoOrientationLandscapeRight) 这个苹果问答中有一些很好的信息

我的理解是您不能在 AVCaptureVideoDataOutput 上设置视频方向。因此,链接中的所有各种技巧都可以在 AVCaptureSession 委托方法中旋转当前帧图像captureOutput:didOutputSampleBuffer:fromConnection:

我从您之前的帖子中假设您查看了 SquareCam 示例项目。RosyWriter 项目还提供了一些有趣的方向处理,通过将连接的 videoOrientation 属性与应用程序期望的“参考”纵向方向进行比较。

希望能帮助到你。

于 2012-12-06T22:27:19.610 回答