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

感謝を。私は今それを試してみる –

関連する問題