【问题标题】:Problem in displaying sequence of DICOM images using QT使用 QT 显示 DICOM 图像序列时出现问题
【发布时间】:2010-10-29 11:29:52
【问题描述】:

我在 Linux [GCC 编译器] 中工作, 我正在使用带有 CDT + QT 的 Eclipse 进行编译 我需要使用 QT 窗口和 OpenGL 函数显示 DICOM 图像序列 请让我知道显示图像序列的功能是什么 我正在使用 3 个功能 1) initiallizeGL() 初始化OpenGL函数。 2) resizeGL() 而不是 Glut 中的 glutInitWindowSize()。 3) Glut 中的paintGL() 代替 glutDisplayFunc()。 4) updateGL() 代替 Glut 中的 glutPostRedisplay()。

还请让我知道 QT 中的 Glut 等效函数 过剩主循环(); glutSwapBuffers(); glutInitDisplayMode(); glutIdleFunc(空闲); glutInit(&argc, argv);

【问题讨论】:

    标签: image qt opengl sequence dicom


    【解决方案1】:

    您应该能够通过简单地使用 QGLWidget 作为您的绘画设备轻松显示图像,这取决于您的特定用例 - 可能会简化您的实现。这将使用 Qt 中的 OpenGL 绘制引擎绘制图像。类似以下的内容应该允许您显示图像;

    class CustomWidget : public QGLWidget
    { 
    public:
        CustomWidget(QWidget* parent=0) : QGLWidget(parent), pix("foo.jpg")
        {
    
        }
    
    protected:
        void paintEvent(QPaintEvent *pe)
        {
            QPainter p(this);
            // maybe update the pixmap
            p.drawPixmap(this->rect(),pix);
        }
    
    private:
        QPixmap pix;
    };
    

    如果您需要将其放入 3D 场景中,您可能需要将图像加载为纹理。一些 Qt OpenGL 演示应该能够为您提供一个起点,例如“盒子”演示;

    http://doc.trolltech.com/4.6-snapshot/demos-boxes.html

    【讨论】:

      【解决方案2】:

      我会说 Qt 已经处理了 gluSwapBuffers、glutInitDisplayMode 和 glutInit,所以你不需要这些。 我也不确定您的函数映射是否正确,简而言之,Qt 和 Glut 以不同的方式考虑 GL,因此您可能必须采用相同的方式(以不同的方式思考)并且 Qt 方法几乎是不言自明的。 我建议下载 KGLEngine 或任何其他 Qt +GL 项目的代码,以更好地了解它的工作原理。

      【讨论】:

        猜你喜欢
        • 2014-09-04
        • 1970-01-01
        • 2018-02-13
        • 2022-12-16
        • 1970-01-01
        • 2013-03-09
        • 2011-03-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多