2011-03-16 192 views
1

嗨 我已阅读OpenCV的参考from this网站,并使用下面的代码:如何将颜色转换为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

感谢。我现在就试试 – 2011-03-16 13:37:12

相关问题