示例#1
0
    def __init__(self):
        self.names = []
        self.settings = []
        self.settings_val = []

        # ---Importation des donnees du .mat--- #
        data_filename = 'U001ai.mat'
        data_folder = 'SSVEP_Training/Dataset/'
        data_path = data_folder + data_filename
        data = loadmat(data_path)
        success = 0
        i = 0
        verbose = False
        self.registered_patients = []
        self.patients = []
        patients = []
        suc_rate = []
        self.success_by_freq = [0, 0, 0, 0, 0]

        rank = 1
        average_success = []
        for i in range(rank):
            average_success.append([0])

        for filename in os.listdir(data_folder):
            if filename[-5] != 'x':
                verbose = False
                if filename == 'U005aii.mat':
                    verbose = True
                if filename[-6:-4] == 'ii':
                    seq = 1
                else:
                    seq = 0
                data = loadmat(data_folder + filename)
                i += 1
                if filename[:5] in self.registered_patients:
                    patient_idx = self.registered_patients.index(filename[:5])
                    self.patients[patient_idx].addNewData(data, seq)
                    for i in range(rank):
                        suc_rate = self.patients[
                            self.registered_patients.index(
                                filename[:5])].successRate(i + 1)
                        average_success[i] = np.add(average_success[i],
                                                    suc_rate)
                        # print("Patient {}, success rate : {} %".format(filename, suc_rate))

                else:
                    self.registered_patients.append(filename[:5])
                    self.patients.append(
                        cl.Patient(filename[:5], data, seq, rank))

        for i in range(rank):
            n = average_success[i][0]
            n /= len(self.registered_patients)
            print("Sucess rate rank {} : {}%".format(i + 1, n))

        self.successRate()

        self.frame = GUI.MainApplication(self.registered_patients,
                                         self.patients[0].getChannelsName(),
                                         self.success_by_freq)
        self.window = self.frame.frames[GUI.MainWindow]
        LW = self.frame.frames[GUI.MainWindow].lengthw
        mwindow_size = str(1260 + LW) + 'x' + str(350)
        self.frame.geometry(mwindow_size)
        self.frame.mainloop()
        self.guiLoop()