首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Qt显示灰度图像

使用Qt显示灰度图像
EN

Stack Overflow用户
提问于 2012-12-03 14:14:21
回答 3查看 9.4K关注 0票数 4

我一直在尝试使用Qt显示灰度图像。图像数据是从包含256x256浮点数据的.txt文件中加载的。没有涉及到图像的头部。我已经尝试了这个link中发布的解决方案

我使用QLabel类来调用我的uchar* image_data_arraysetPixmap。尽管我可以打开一个Qt GUI窗口,但该窗口只显示空白屏幕。

imageLabel -> setPixmap(QPixmap::fromImage(*myImage));

EN

回答 3

Stack Overflow用户

发布于 2012-12-03 18:41:47

代码语言:javascript
复制
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获得良好的灰度。

票数 3
EN

Stack Overflow用户

发布于 2012-12-03 17:53:36

如何将灰度图像数据加载到QImage中?

QT没有灰度图像类型,只有双层类型。您可以使用R=G=B=grey创建RGB图像。或者更优选地,使用QImage::Format_Indexed8并创建一个颜色表,其中每个条目具有与索引相同的值。即

代码语言:javascript
复制
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);
票数 2
EN

Stack Overflow用户

发布于 2021-12-14 22:09:03

在QT 5.9.1中,有一个创建灰度图像的选项:

代码语言:javascript
复制
QImage *qi = new QImage(data_ptr, width, height, QImage::Format_Grayscale8);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13678093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档