簡體   English   中英

使用pyqtplot繪制從.tiff圖像構建的numpy數組

[英]Plot numpy array built from a .tiff image using pyqtplot

我正試圖在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函數,但我不熟悉其中任何一個都知道下一步要做什么。

我想你想要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_()

在此輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM