2015-11-02 139 views
0

我是MITK的新手,而不是高級程序員。 我需要幫助在QT Widget中顯示DICOM圖像。 我正在使用Visual Studio 2013,MITK和QT5開發一個程序,該程序應該可以打開並查看DICOM圖像。用戶瀏覽顯示的圖像。 我在這裏看到:Interactively editing an existing rectangle on a QPixmap?它可能與QLabel和QGraphicsview。 我只是不知道如何使用我的程序:在QLabel中顯示Dicom圖像/ QGraphicsView

void MainWindow::on_openButton_pressed() 
{ 
QString imagePath = QFileDialog::getOpenFileName(
    this, tr("Open File"), 
    "", 
    tr("JPEG(*.jpg *.jpeg);;DICOM(*.dcm)") 
    ); 
imageObject = new QImage(); 
imageObject->load(imagePath); //bool status is false here 
image = QPixmap::fromImage(*imageObject) 
image.load(imagePath); 

QSize bigsize = ui->bigImageLabel->size(); 
QSize bigsize = ui->label->size(); 
ui->label->setPixmap(image.scaled(bigsize, Qt::IgnoreAspectRatio, Qt::FastTransformation)); 
ui->label->show(); 
} 

我也用的QGraphicsView(僅適用於JPEG文件)嘗試。

scene = new QGraphicsScene(this); 
scene->addPixmap(image); 
scene->setSceneRect(image.rect()); 
ui->ViewCoronal->setScene(scene); 

我希望有人能幫助我。 在此先感謝

+0

你遇到的錯誤是什麼?它會崩潰嗎?編譯器是否提供錯誤? – Jaap

+0

我假設問題是連接MITK DICOM文件支持與Qt GUI。我說這是一個XY問題。 OP應該使用MITK庫中的VTK支持來顯示DICOM圖像並將其放入QWidget中。 – drescherjm

+0

@Jaap:沒有錯誤,只是沒有任何反應.. mbilog消息說:「QPixmap :: scales:Pixmap是一個空像素圖」 – user39458

回答

1

如果QImage::load失敗,則無法將其轉換爲QPixmap,因爲默認情況下,QImage是以0,0構造的,而當您顯示此類QPixmap時,您什麼也看不到。默認情況下,Qt不支持「DICOM」圖像格式,因此您不能使用Qt功能的任何部分顯示此圖像。

所以,你可以通過你的自我實現的Qt插件這種圖像格式,請參閱http://doc.qt.io/qt-5/qtimageformats-index.html或利用現有的一個,MITK根據http://docs.mitk.org/2015.05/group__org__mitk__gui__qt__dicom.html#details

但有一個使用MITK插件,你應該放到正確的地方,像path/to/qt5/plugins/imageformats也你必須確保你的程序Qt和MITK使用相同的配置,如Debug/Release

+1

這是正確的。你的示例代碼根本不使用MITK。這只是Qt。 QImage加載方法無法讀取DICOM圖像。使用像MITK這樣的框架需要非常大的學習曲線。要開始,我會建議編寫一些加載非DICOM圖像的代碼,並執行一些您需要的操作。接下來使用更簡單的框架來學習如何加載DICOM圖像。 (例如GDCM)要了解的最重要的事情是1- DICOM文件包含許多其他圖像格式所沒有的元數據,2 - DICOM圖像數據本身通常與其他圖像格式不同。 –