我一直在尝试使用Qt显示灰度图像。图像数据是从包含256x256浮点数据的.txt文件中加载的。没有涉及到图像的头部。我已经尝试了这个link中发布的解决方案
我使用QLabel类来调用我的uchar* image_data_array的setPixmap。尽管我可以打开一个Qt GUI窗口,但该窗口只显示空白屏幕。
imageLabel -> setPixmap(QPixmap::fromImage(*myImage));
发布于 2012-12-03 18:41:47
QImage img = AImage;
if (!AImage.isNull())
{
int pixels = img.width() * img.height();
if (pixels*(int)sizeof(QRgb) <= img.byteCount())
{
QRgb *data = (QRgb *)img.bits();
for (int i = 0; i < pixels; i++)
{
int val = qGray(data[i]);
data[i] = qRgba(val, val, val, qAlpha(data[i]));
}
}
}
return img;使用RGBA获得良好的灰度。
发布于 2012-12-03 17:53:36
如何将灰度图像数据加载到QImage中?
QT没有灰度图像类型,只有双层类型。您可以使用R=G=B=grey创建RGB图像。或者更优选地,使用QImage::Format_Indexed8并创建一个颜色表,其中每个条目具有与索引相同的值。即
QImage *qi = new QImage(data_ptr, width, height, QImage::Format_Indexed8);
QVector<QRgb> my_table;
for(int i = 0; i < 256; i++) my_table.push_back(qRgb(i,i,i));
qi->setColorTable(my_table);发布于 2021-12-14 22:09:03
在QT 5.9.1中,有一个创建灰度图像的选项:
QImage *qi = new QImage(data_ptr, width, height, QImage::Format_Grayscale8);https://stackoverflow.com/questions/13678093
复制相似问题