首页 > 代码库 > 获取AVCaptureSession samplebuffer 一像素的 rgb值

获取AVCaptureSession samplebuffer 一像素的 rgb值

获取AVCaptureSession samplebuffer 一像素的 rgb值

typedef unsigned char byte;typedef struct RGBPixel{    byte red, green, blue;} RGBPixel;- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer        fromConnection:(AVCaptureConnection *)connection {         CVImageBufferRef imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer);    CVPixelBufferLockBaseAddress(imageBuffer,0);        size_t bytesPerRow = CVPixelBufferGetBytesPerRow(imageBuffer);    size_t width = CVPixelBufferGetWidth(imageBuffer);    size_t height = CVPixelBufferGetHeight(imageBuffer);    uint8_t *src_buff = (uint8_t*)CVPixelBufferGetBaseAddress(imageBuffer);        CVPixelBufferUnlockBaseAddress(imageBuffer, 0);    RGBPixel *pixelData = http://www.mamicode.com/(RGBPixel *)src_buff;    int len = bytesPerRow * height;    for(int i=0; i<len; i+=4){                RGBPixel pixel = pixelData[i/4];                int a = 0;        int r = pixel.red;        int g = pixel.green;        int b = pixel.blue;        NSLog(@"first values = r:%d g:%d b:%d", r, g, b);                a = src_buff[i+3];        r = src_buff[i+2];        g = src_buff[i+1];        b = src_buff[i];        NSLog(@"second values = r:%d g:%d b:%d", r, g, b);     }}

 

如果是BGRA

typedef struct RGBPixel{    byte blue, green, red;} RGBPixel;

 

参考:http://iphonedevsdk.com/forum/iphone-sdk-development/

获取AVCaptureSession samplebuffer 一像素的 rgb值