pyqtgraph - 是否可以使用没有直方图的ImageView?

时间:2016-06-28 01:14:21

标签: python pyqt dicom pyqtgraph

我目前有ImageView显示Dicom图像,但我不希望侧面有直方图。并尽可能将这两个按钮移动到另一个地方。 我该怎么做?

3 个答案:

答案 0 :(得分:2)

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_()

hacky方法的开始是通过在ImageView上调用ui.histogram.hide()。像这样的东西

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_()

答案 1 :(得分:0)

这里是一个没有直方图的ImageItem。也许这就是你正在寻找的东西。

import pyqtgraph as pg
from PyQt4 import QtCore, QtGui

app = QtGui.QApplication([])

imageWidget = pg.GraphicsLayoutWidget()
vb = imageWidget.addViewBox(row=1, col=1)
img = pg.ImageItem()
vb.addItem(img)
vb.setAspectLocked(True)

答案 2 :(得分:0)

我知道已经很晚了,但是对于将来想要弄清楚这个问题但又想要imageview而不是imageitem的任何人:

假设您有一个带有imageview标签的imv和一个布尔值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()