2011-03-16 137 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

相關問題