【发布时间】:2012-09-30 00:11:15
【问题描述】:
我正在使用 AVCapture 基础通过委托回调检索图像(来自 iphone 4 前置摄像头)。我已将 BGRA 指定为以下格式:
self.theOutput.videoSettings = [NSDictionary dictionaryWithObject:[NSNumber numberWithInt:kCVPixelFormatType_32BGRA] forKey:(id)kCVPixelBufferPixelFormatTypeKey];
self.output 的类型为 AVCaptureVideoDataOutput。
而且我可以正确预览图像。
我一直在尝试寻找一种简单的方法来测试单个像素 RGB 以试图更好地理解,例如在相机上方拿着一张蓝卡,但数字只是在 80-110 之间波动,而我的预期是 0 ,0,255 给出了什么?
当我将一张白卡放在相机上时,我预计每个 RGB 为 255,但我已经接近 120。似乎它在白色上将所有数字都打折了 50%。任何原因?但是当我让直射光照射到相机上时,每个 RGB 元素得到 255。
我觉得我在这里缺少一些基本的理解。
【问题讨论】:
-
你是如何指定 BGRA 的,你是如何读回无符号字符的?一些代码可以帮助我们帮助您。
-
感谢您提出正确的问题。我更新了代码。我昨天也一定很累,看起来 BGRA 像素以无符号字符 * 像素的顺序正确读取为 B、G、R、A,所以 B=Pixel[0]、G=Pixel[1] 等....我一直在通过简单的 NSlog 读回数据: NSLog(@"The pixel at row 0 and column 0 is: %i,%i,%i,%i\n",framePixels[0], framePixels [1],framePixels[2],framePixels[3]);你能看看其他2个问题吗?谢谢
标签: ios5 opengl-es avcapturesession rgba core-video