你好
我已阅读openCV参考from this网站,并使用以下代码:
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 ));
我正在尝试将输出之一转换为灰度。不幸的是,它们仍然都是彩色的,我看不到我错过了某个地方。
谢谢您的帮助。
最佳答案
您需要为bwImagetmp显式设置一个灰色表:
QVector<QRgb> colorTable;
for (int i = 0; i < 256; i++) colorTable.push_back(qRgb(i, i, i));
bwImagetmp.setColorTable(colorTable);
关于c++ - 如何在openCV中将颜色转换为灰度图像?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5323163/