zoukankan      html  css  js  c++  java
  • 获取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 = (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/

  • 相关阅读:
    springBoot启动异常 Failed to load ApplicationContext
    mysql存储过程
    springBoot集成Swagger
    groupmems命令:更改和查看组成员 和 usermod命令修改组
    javaBean简介
    Angular获取dom元素,以及父子组建之间相互传值
    Lambda表达式
    坐标转换
    扩展方法
    Binding的Path(路径)
  • 原文地址:https://www.cnblogs.com/cocoajin/p/4165903.html
Copyright © 2011-2022 走看看