我正在尝试创建一个 Dicom GUI 工具包,用户在其中选择一些 dicom 图像,并将显示所选图像中的第一个 dicom 图像的图像。然后用户单击图像,图像会弹出更大的图像窗口。在这个显示的较大图像中,图像将由一个红色矩形组成,其中包含 Dicom 图像的必要区域,而不必要的区域位于矩形之外。然后,用户应该可以选择通过鼠标更改矩形。
到目前为止,我已经能够使用QLabel
以下代码片段显示带有矩形的大 dicom 图像。
void MainWindow::showBigImage()
{
QPixmap bigimage;
bigimage.load(imageName.c_str());
QPainter painter(&bigimage);
painter.setPen(Qt::red);
QRectF rect(xmin, ymin, xmax, ymax);
painter.drawRect(rect);
QSize bigsize = ui->bigImageLabel->size();
ui->bigImageLabel->setPixmap(bigimage.scaled(bigsize, Qt::IgnoreAspectRatio, Qt::FastTransformation));
ui->bigImageLabel->show();
}
应用程序上的大图如下所示:
您能否建议我现在应该如何使用户可以编辑矩形,用户可以根据自己的意愿设置现有的红色矩形?
我也尝试了类似的事情,QGraphicsView
并QGraphicsScene
使用以下代码:
void MainWindow::showBigImage()
{
QGraphicsScene* scene = new QGraphicsScene;
scene->addPixmap(bigimage);
ui->bigImageView->setScene(scene);
ui->bigImageView->show();
}
这段代码给了我以下外观:
如您所见,我无法将图像拟合到 的边界QGraphicsView
,您能建议我怎么做吗?您能否建议我如何在不添加矩形的情况下在 上添加红色矩形(我在示例中使用 显示QLabel
)?QGraphicsView
QPixmap