2011-03-16 3 views
1

Salut J'ai lu la référence OpenCV from this site et en utilisant le code suivant:Comment convertir la couleur en image en niveaux de gris dans 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)); 

Je suis en train de convertir un de la sortie en échelle de gris. Malheureusement, ils sont toujours à la fois en couleur et je ne peux pas voir que j'ai raté un pas quelque part. Merci pour l'aide.

Répondre

1

Vous devez définir explicitement une table de couleur grise pour bwImagetmp:

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

Merci. Je vais essayer ça maintenant –

Questions connexes