解决方案 »

  1.   

    http://www.baidu.com/s?wd=%E5%BD%A9%E8%89%B2%E8%BD%AC%E7%81%B0%E5%BA%A6%E5%85%AC%E5%BC%8F&rsv_bp=0&ch=&tn=baidu&bar=&rsv_spt=3&ie=utf-8&rsv_sug3=4&rsv_sug4=30&rsv_sug1=3&inputT=10500
      

  2.   

    大恒的相机函数库用起来就是麻烦,你得自己好好看它的软件手册,找到类似下面的转换代码: //当数据格式为12位时,位数转换为4-11
    case GX_PIXEL_FORMAT_BAYER_GR12:
    case GX_PIXEL_FORMAT_BAYER_RG12:
    case GX_PIXEL_FORMAT_BAYER_GB12:
    case GX_PIXEL_FORMAT_BAYER_BG12:
    //将12位格式的图像转换为8位格式
    DxRaw16toRaw8(pCameraBuf, m_pImgRaw8Buf, (VxUint32)m_lImgWidth, (VxUint32)m_lImgHeight, DX_BIT_4_11);
    //将Raw8图像转换为RGB图像以供显示
    DxRaw8toRGB24(m_pImgRaw8Buf,m_pImgRGBBuf,(VxUint32)m_lImgWidth, (VxUint32)m_lImgHeight,RAW2RGB_NEIGHBOUR,
    DX_PIXEL_COLOR_FILTER(m_lPixelColorFilter),TRUE);         
    break; //当数据格式为12位时,位数转换为2-9
    case GX_PIXEL_FORMAT_BAYER_GR10:
    case GX_PIXEL_FORMAT_BAYER_RG10:
    case GX_PIXEL_FORMAT_BAYER_GB10:
    case GX_PIXEL_FORMAT_BAYER_BG10:
    ////将12位格式的图像转换为8位格式,有效位数2-9
    DxRaw16toRaw8(pCameraBuf, m_pImgRaw8Buf, (VxUint32)m_lImgWidth, (VxUint32)m_lImgHeight, DX_BIT_2_9);
    //将Raw8图像转换为RGB图像以供显示
    DxRaw8toRGB24(m_pImgRaw8Buf,m_pImgRGBBuf, (VxUint32)m_lImgWidth, (VxUint32)m_lImgHeight,RAW2RGB_NEIGHBOUR,
    DX_PIXEL_COLOR_FILTER(m_lPixelColorFilter),TRUE);
    break; case GX_PIXEL_FORMAT_BAYER_GR8:
    case GX_PIXEL_FORMAT_BAYER_RG8:
    case GX_PIXEL_FORMAT_BAYER_GB8:
    case GX_PIXEL_FORMAT_BAYER_BG8:
    //将Raw8图像转换为RGB图像以供显示
    DxRaw8toRGB24(pCameraBuf,m_pImgRGBBuf, (VxUint32)m_lImgWidth, (VxUint32)m_lImgHeight,RAW2RGB_NEIGHBOUR,
    DX_PIXEL_COLOR_FILTER(m_lPixelColorFilter),TRUE);
    break; case GX_PIXEL_FORMAT_MONO12:
    //将12位格式的图像转换为8位格式
    DxRaw16toRaw8(pCameraBuf, m_pImgRaw8Buf, (VxUint32)m_lImgWidth, (VxUint32)m_lImgHeight, DX_BIT_4_11);
    //将Raw8图像转换为RGB图像以供显示
    DxRaw8toRGB24(m_pImgRaw8Buf,m_pImgRGBBuf, (VxUint32)m_lImgWidth, (VxUint32)m_lImgHeight,RAW2RGB_NEIGHBOUR,
    DX_PIXEL_COLOR_FILTER(NONE),TRUE);         
    break; case GX_PIXEL_FORMAT_MONO10:
    //将10位格式的图像转换为8位格式
    DxRaw16toRaw8(pCameraBuf, m_pImgRaw8Buf, (VxUint32)m_lImgWidth, (VxUint32)m_lImgHeight, DX_BIT_4_11);
    //将Raw8图像转换为RGB图像以供显示
    DxRaw8toRGB24(m_pImgRaw8Buf,m_pImgRGBBuf, (VxUint32)m_lImgWidth, (VxUint32)m_lImgHeight,RAW2RGB_NEIGHBOUR,
    DX_PIXEL_COLOR_FILTER(NONE),TRUE);         
    break; case GX_PIXEL_FORMAT_MONO8:
    //将Raw8图像转换为RGB图像以供显示
    DxRaw8toRGB24(pCameraBuf,m_pImgRGBBuf, (VxUint32)m_lImgWidth, (VxUint32)m_lImgHeight,RAW2RGB_NEIGHBOUR,
    DX_PIXEL_COLOR_FILTER(BAYERGR),TRUE);         
    break;我说的只是类似,你得找你的相机相关转换函数
      

  3.   


    我的主要问题是不知道大恒转成RGB后存储格式是怎样的,不知道能不能用一般的彩色转灰度算法,来计算各个像素点的灰度值。
      

  4.   

    好像只有Raw转RGB,没有转灰度的。敢问你知不知道转成RGB后的存储格式是怎样的?
      

  5.   

    在window下,存储格式是BGR,在linux下,存储格式是RGB,要看灰度图,直接采用各像素的RGB来计算亮度分量,计算方法很简单,采用BT601标准:Y =  0.299R + 0.587G + 0.114B,然后保存为8位灰度图,或者拷贝成3通道,保存为24位图像,但是是灰度的,都可以!