如何将RAW8转换为RGB8 NSImage

时间:2012-04-02 15:12:40

标签: macos cocoa core-image

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

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

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

使用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);