2011-03-16 4 views
1

Привет Я прочитал ссылочный from this сайт OpenCV и используя следующий код:Как преобразовать цвет в изображение с оттенками серого в openCV?

VideoCapture mCap; 
Mat mcolImage, mbwImage; 

      mCap >> mcolImage; // New frames from the camera 

      cvtColor(mcolImage, mcolImage, CV_BGR2RGB); 
      cvtColor(mcolImage, mbwImage, CV_RGB2GRAY); 

      QImage colImagetmp((uchar*)mcolImage.data, mcolImage.cols, mcolImage.rows, mcolImage.step, 
           QImage::Format_RGB888); //Colour 

      QImage bwImagetmp ((uchar*)mbwImage.data, mbwImage.cols, mbwImage.rows, mbwImage.step, 
           QImage::Format_Indexed8); //Greyscale. I hope 

      ui.bwDisplay->setPixmap(QPixmap::fromImage(bwImagetmp)); 
      ui.colDisplay->setPixmap(QPixmap::fromImage(colImagetmp)); 

Я пытаюсь преобразовать один из выходных в оттенках серого. К сожалению, они по-прежнему оба по цвету, и я не вижу, что я где-то пропустил какой-то шаг. Спасибо за помощь.

ответ

1

Вы должны явно установить серый цвет таблицы для bwImagetmp:

QVector<QRgb> colorTable; 
for (int i = 0; i < 256; i++) colorTable.push_back(qRgb(i, i, i)); 
bwImagetmp.setColorTable(colorTable); 
+0

Спасибо. Я попробую это сейчас –