В итоге я придумал два решения:
Использование 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);