pyqtgraph - 是否可以有一个没有直方图的 ImageView?

dep*_*agu 4 python pyqt dicom pyqtgraph

我目前有一个ImageView显示 Dicom 图像,但我不想在侧面显示该直方图。如果可能,将这两个按钮移到另一个位置。我怎样才能做到这一点?

小智 8

我知道现在已经晚了,但是对于将来想要图像视图而不是图像项的任何人来说:

假设您有一个标记为 imv 的 imageview 和一个布尔值 show_histogram,您可以使用以下代码切换显示直方图(及其下方的两个按钮)。

if show_histogram:
    imv.ui.histogram.show()
    imv.ui.roiBtn.show()
    imv.ui.menuBtn.show()
else:
    imv.ui.histogram.hide()
    imv.ui.roiBtn.hide()
    imv.ui.menuBtn.hide()
Run Code Online (Sandbox Code Playgroud)


lud*_*dek 5

ImageView 的特别之处在于您可以获得直方图。显示图像的另一种方法是将ImageItem添加到基本绘图并隐藏轴。以这种方式解决问题将使您能够很好地控制应用程序显示的内容。

这是一个代码示例:

from PyQt4 import QtGui, QtCore
import pyqtgraph as pg
import numpy as np

win = pg.GraphicsWindow()
plot = win.addPlot()

imagedata = np.random.random((256,256))
ii = pg.ImageItem(imagedata)
plot.addItem(ii)
plot.hideAxis('left')
plot.hideAxis('bottom')

import sys
if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
    QtGui.QApplication.instance().exec_()
Run Code Online (Sandbox Code Playgroud)

一个hacky方法的开始是调用ui.histogram.hide()你的ImageView。像这样的东西

from PyQt4 import QtCore, QtGui
import pyqtgraph as pg
import numpy as np

app = QtGui.QApplication([])
win = QtGui.QMainWindow()
imv = pg.ImageView()
win.setCentralWidget(imv)
win.show()

imagedata = np.random.random((256,256))
imv.setImage(imagedata)
imv.ui.histogram.hide()

import sys
if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
    QtGui.QApplication.instance().exec_()
Run Code Online (Sandbox Code Playgroud)