我一直在尝试使用Qt显示灰度图像。图像数据从包含256x256浮点数据的.txt文件加载。图像没有涉及标题。我已尝试在此link
中发布的解决方案我使用QLabel
课程来调用setPixmap
的{{1}}。即使我可以打开一个Qt GUI窗口,但窗口只显示空白屏幕。
imageLabel - > setPixmap(的QPixmap :: fromImage(* MYIMAGE));
答案 0 :(得分:3)
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获得良好的灰度。
答案 1 :(得分:2)
如何使用灰度图像数据加载QImage?
QT没有灰度图像类型,只有双层类型。您可以创建R = G = B =灰色的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);