我尝试创建一个简单的GUI,通过使用色彩图将单个带图像(在我的特定情况下为DEM - 数字地形模型)显示为彩色图像。我使用python3,pyqt5,gdal和numpy。通过使用 qimage2ndarray 模块将numpy数组转换为QImage,实际显示单色图像相对容易。有没有办法将色彩图添加到此QImage中,因此添加到Qgraphicscene时是否以灰度显示? (就像matplotlib能做的那样)
我使用的代码(加载器功能和显示功能)
def ofdlgDEM(self): #open a DEM with the GUI
DEMname = str(QtWidgets.QFileDialog.getOpenFileName(None, "Open Data File", '.', "(*.tif)")[0])
self.demPathText.setText(DEMname)
self.demholder=gdal.Open(DEMname, gdal.GA_ReadOnly)
self.demdata=self.demholder.ReadAsArray() # the DEM is a numpy array now
def showdemfun(self): # Display the DEM in the GUI
self.demQImage=qimage2ndarray.array2qimage(self.demdata, normalize=(0, self.demdata.max()))
self.newscene=NewScene() # A class that simply initializes a new QGraphicsScene
self.newscene.addPixmap(QtGui.QPixmap.fromImage(self.demQImage)) # I think this is where the colormap should be introduced
self.graphview.setScene(self.newscene)