使用QT显示DICOM图像序列的问题

时间:2009-05-28 03:47:53

标签: image qt opengl sequence dicom

我在Linux [GCC Compiler]工作, 我正在使用Eclipse和CDT + QT进行编译 我需要使用QT窗口和OpenGL函数显示DICOM图像的序列 请告诉我哪个是显示图像序列的功能 我正在使用3个功能 1)initiallizeGL()初始化OpenGL函数。 2)在Glut中调整resizeGL()而不是glutInitWindowSize()。 3)在Glut中使用paintGL()而不是glutDisplayFunc()。 4)在Glut中使用updateGL()而不是glutPostRedisplay()。

还请告诉我哪些是QT中的Glut等效功能 glutMainLoop(); glutSwapBuffers(); glutInitDisplayMode(); glutIdleFunc(空闲); glutInit(& argc,argv);

2 个答案:

答案 0 :(得分:4)

您应该能够通过简单地使用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演示应该能够为您提供一个起点,例如: 'Boxes'演示;

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

答案 1 :(得分:0)

我会说Qt已经处理了gluSwapBuffers,glutInitDisplayMode和glutInit,所以你不需要那些。 我也不确定你的函数映射是否正确,简单地说,Qt和Glut以不同的方式考虑GL,所以你可能需要相同(以不同的方式思考)和Qt方法几乎是自我解释的。 我建议下载KGLEngine或任何其他Qt + GL项目的代码,以便更好地了解它的工作原理。