Matplotlib图像放在PYQT小部件中

时间:2018-01-18 21:21:20

标签: python qt matplotlib

iv遇到了问题。 我必须在我的GUI中创建嵌入我的图像(256x256矩阵)的小部件。我创建的图像是在matplotlib的帮助下完成的。 继承人的代码

import scipy
import scipy.io
import matplotlib.pyplot as plt
import numpy

def openFile(name):``
    return scipy.io.loadmat(name)

def showPlot(mat, key):
    plt.imshow(mat[key],cmap='gray', interpolation='nearest', vmin=None, vmax=255)
    plt.axis('off')
    plt.show()


name = 'skull_stripped.mat'
key = 'skull_stripped'
mat = openFile(name)
showPlot(mat,key)

我如何嵌入" mat" QTpython GUI小部件中的变量?

1 个答案:

答案 0 :(得分:0)

我有一个类似的问题,我解决了实现与我在GUI中创建的一个按钮连接的功能。您可以使用QFileDialog()函数浏览放置Mat文件的文件夹。比起使用函数getOpenFileName()。此函数返回一个元组,其中第一个元素是文件的url。使用scipy.io.loadmat可以导入文件并针对您的目标进行管理。

from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton
from PyQt5.QtWidgets import QFileDialog, QDialog 
import sys
import scipy.io.spio
import numpy as np

class Window(QMainWindow):
   def __init__(self):
      super(Window, self).__init__()
      self.title =("My_Gui")
      self.top = 100
      self.left = 100
      self.width = 1680
      self. height = 880

      self.InitWindow()

  # Definition of buttons
   def InitWindow(self):

     self.Import = QPushButton("Import Data", self)
     self.Import.setGeometry(20, 50, 150, 50)
     self.Import.clicked.connect(self.importdata)

# Display interface
     self.setWindowTitle(self.title)
     self.setGeometry(self.top, self.left, self.width, self.height)
     self.show()

   def importdata(self):
     global img, img1, img2
     fd = QFileDialog()
     filenameraw = fd.getOpenFileName(self, caption="", directory="")
     filenameraw = filenameraw[0]
     raw = spio.loadmat(filenameraw)


App = QApplication(sys.argv)
window = Window()
sys.exit(App.exec())

变量raw将包含您的Mat文件,您可以根据需要使用它。