kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange形式(YUV、バイプレーナー)のIPhoneからYUVチャンネルを取得しています。IPhone YUVチャンネル方向
私はYチャネルを処理しようとするので、私は問題はy_channel画素が回転し、ミラー(私が何を見てのように見るためにオーバーレイ層の上にそれらを描く表示されていることである
CVImageBufferRef pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer);
CVPixelBufferLockBaseAddress(pixelBuffer, 0);
int bufferHeight = CVPixelBufferGetHeight(pixelBuffer);
int bufferWidth = CVPixelBufferGetWidth(pixelBuffer);
uint8_t *y_channel = CVPixelBufferGetBaseAddressOfPlane(pixelBuffer, 0);
を使用してそれをつかみます:
- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)context
{
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceGray();
CGContextRef bitmapContext = CGBitmapContextCreate(rotated,
imageSize->x,
imageSize->y,
8, // bitsPerComponent
1*imageSize->x, // bytesPerRow
colorSpace,
kCGImageAlphaNone);
CFRelease(colorSpace);
CGImageRef cgImage = CGBitmapContextCreateImage(bitmapContext);
CGContextDrawImage(context, CGRectMake(0, 0, imageSize->x/2, imageSize->y/2), cgImage);
CFRelease(cgImage);
CFRelease(bitmapContext);
}
Iは画素をループとみなされ、イメージの固定バージョンを作成したが、正しい向きでy_channelを取得する方法があるかどうかは疑問に思っています(IE:90度に回転していません)カメラからまっすぐ。