使用pyqtplot绘制从.tiff图像构建的numpy数组

时间:2014-01-12 00:25:23

标签: python numpy pyqtgraph

我正在尝试在pyqtgraph中绘制tiff图像。

import numpy as np
import gdal
import pyqtgraph as pg
from PyQt4 import QtCore

gd = gdal.Open('myImage.tif')
data = np.array(gd.GetRasterBand(1).ReadAsArray())
pg.plot(data, title="my picture")

if __name__ == '__main__':
    import sys
    if sys.flags.interactive != 1 or not hasattr(QtCore, 'PYQT_VERSION'):
        pg.QtGui.QApplication.exec_()

我得到了错误

Traceback (most recent call last):
  File "C:/Users/justin/PycharmProjects/pyqtgraph_examples/geotiff.py", line 18, in <module>
    pg.plot(data, title="my picture")
  File "C:\Python33\lib\site-packages\pyqtgraph\__init__.py", line 295, in plot
    w.plot(*args, **dataArgs)
  File "C:\Python33\lib\site-packages\pyqtgraph\graphicsItems\PlotItem\PlotItem.py", line 639, in plot
    item = PlotDataItem(*args, **kargs)
  File "C:\Python33\lib\site-packages\pyqtgraph\graphicsItems\PlotDataItem.py", line 165, in __init__
    self.setData(*args, **kargs)
  File "C:\Python33\lib\site-packages\pyqtgraph\graphicsItems\PlotDataItem.py", line 341, in setData
    dt = dataType(data)
  File "C:\Python33\lib\site-packages\pyqtgraph\graphicsItems\PlotDataItem.py", line 679, in dataType
    raise Exception('array shape must be (N,) or (N,2); got %s instead' % str(obj.shape))
Exception: array shape must be (N,) or (N,2); got (788, 744) instead

print(data.size)返回(788,744)。

我在想我的numpy数组是错误的形式,或者我使用了错误的pyqtgraph函数,但我不熟悉它们以及下一步要尝试的内容。

1 个答案:

答案 0 :(得分:3)

我想你想要pyqtgraph.image。例如,这是脚本的修改版本(我安装了PySide):

import numpy as np
import pyqtgraph as pg
from PySide import QtCore
from scipy.ndimage import gaussian_filter


data = np.random.beta(0.5, 3, size=(500, 500))
data = gaussian_filter(data, sigma=(12, 3))

pg.image(data, title="my picture")

if __name__ == '__main__':
    import sys
    if sys.flags.interactive != 1 or not hasattr(QtCore, 'PYQT_VERSION'):
        pg.QtGui.QApplication.exec_()

enter image description here