Как преобразовать 8-битный IplImage в 24-битный IplImage в OpenCV?

У меня 8 бит IplImage и я хочу преобразовать его в 24 бит IplImage, Как я могу это сделать?

0

Решение

Предполагая, что ваше серое изображение находится в переменной с именем image

IplImage *rgbimage = cvCreateImage(/*whatever size*/, 8, 3);
cvCvtColor(image, rgbimage, CV_GRAY2BGR);
3

Другие решения

Тебе нужно cvConvertScale это пример из этот вопрос

    IplImage *im8 = cvLoadImage(argv[1]);
IplImage *im32 = cvCreateImage(cvSize(im8->width, im8->height), 32, 3);

cvConvertScale(im8, im32, 1/255.);
3

Ну вот,

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

Пожалуйста, попробуйте, я не проверил это. Но по логике это должно работать!

2
По вопросам рекламы [email protected]