Как конвертировать RAW8 в RGB8 NSImage - PullRequest
2 голосов
/ 02 апреля 2012

Я ищу способ преобразования изображения RAW8, получаемого с камеры, в цветное изображение NSImage / CIImage.

Существует ли базовый класс, который может применить фильтр Байера и дать мне цветное RGB-изображение?

т.е. У меня есть массив байтов с 8bpp, и я хочу 32bpp RGB NSImage или CIImage.

Я пытался CIFilter filterWithImageData , но это останавливает XCode с EXC_BREAKPOINT?

Ответы [ 2 ]

1 голос
/ 02 апреля 2012

Почему бы не пойти на очевидное решение: ImageIO.framework может обрабатывать изображения RAW .

0 голосов
/ 08 июня 2012

В итоге я придумал два решения:

Использование 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);
...