У меня 8 бит IplImage
и я хочу преобразовать его в 24 бит IplImage
, Как я могу это сделать?
Предполагая, что ваше серое изображение находится в переменной с именем image
—
IplImage *rgbimage = cvCreateImage(/*whatever size*/, 8, 3);
cvCvtColor(image, rgbimage, CV_GRAY2BGR);
Тебе нужно cvConvertScale это пример из этот вопрос
IplImage *im8 = cvLoadImage(argv[1]);
IplImage *im32 = cvCreateImage(cvSize(im8->width, im8->height), 32, 3);
cvConvertScale(im8, im32, 1/255.);
Ну вот,
Mat input_8Bit;
vector <Mat> Vec_temp_8bit;
Vec_temp_8bit.push_back ( input_8Bit );
Vec_temp_8bit.push_back ( input_8Bit );
Vec_temp_8bit.push_back ( input_8Bit );
Mat Output_24Bit;
merge ( Vec_temp_8bit, Output_24Bit );
Пожалуйста, попробуйте, я не проверил это. Но по логике это должно работать!