【问题标题】:How to convert RAW8 to RGB8 NSImage如何将 RAW8 转换为 RGB8 NSImage
【发布时间】:2012-04-02 15:12:39
【问题描述】:

我正在寻找一种将来自相机的 RAW8 图像转换为彩色图像 NSImage/CIImage 的方法。

是否有一个框架类可以应用Bayer filter 并给我一个彩色 RGB 图像?

即我有一个 8bpp 的字节数组,我想要一个 32bpp RGB NSImage 或 CIImage。

我尝试了CIFilter filterWithImageData,但这会使 Xcode 因 EXC_BREAKPOINT 而停止?

【问题讨论】:

    标签: macos cocoa core-image


    【解决方案1】:

    为什么不采用显而易见的解决方案:ImageIO.framework can handle RAW images

    【讨论】:

    • 你能给我更多的提示吗?我已经列举了图像类型,并且有各种原始图像类型(adobe,你命名它们的索尼)。我尝试使用这些字符串作为 kCGImagSourceTypeIdentifierHint 创建一个 CGImageSourceCreateWithData,但没有运气。 CGImageSourceCreateImageAtIndex(... 0) 返回 NULL,我无法查询类型或计数等。感觉这不是正确的方法,因为我没有指定宽度/高度、bpp 和实际的拜耳模式。
    【解决方案2】:

    最后我想出了两个解决方案:

    使用 OpenCV (http://www.OpenCV.org):

        CvMat M = cvMat(height, width, CV_8UC1, frame->image);
        IplImage img; 
        cvGetImage(&M, &img);
    
        IplImage *copyImg = cvCreateImage(cvSize(width, height), IPL_DEPTH_8U, 3);
        cvCvtColor(&img, copyImg, CV_BayerBG2RGB);
    

    但我错过了明显的:我使用 libDC1394 从相机获取图像,它本身提供了一种转换方法:

        dc1394_debayer_frames(frame, new_frame, DC1394_BAYER_METHOD_NEAREST);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-25
      • 2012-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多