def processing_labeling(self, new_tracks, new_labels, filename, acq): freq = acq.GetAnalogFrequency() self.button_save.hide() self.button_processing_labeling.hide() # Estimate bone lenght and mcp angles filename_static = QtGui.QFileDialog.getOpenFileName(self, "Open Static File", "Users/jessicaabreu") static_acq, static_data, static_labels = fp.open_c3d_data(str(filename_static[0])) bone_labels, bone_lenghts, mcp_estatic_error, mcp_inner_angle, mcp_inner_angle_error, mcp_middle_angle, mcp_middle_angle_error, mcp_outer_angle = fp.hand_static_measurements(static_data, static_labels) # wrist tracks self.layout().itemAt(2).widget().deleteLater() for i in range(6): self.layout().itemAt(3).itemAt(i).widget().deleteLater() check_box_w1 = QtGui.QGroupBox("Select W1 tracks") check_box_w1_layout = QtGui.QGridLayout() check_box_w1.setLayout(check_box_w1_layout) check_box_w2 = QtGui.QGroupBox("Select W2 tracks") check_box_w2_layout = QtGui.QGridLayout() check_box_w2.setLayout(check_box_w2_layout) check_box_w3 = QtGui.QGroupBox("Select W3 tracks") check_box_w3_layout = QtGui.QGridLayout() check_box_w3.setLayout(check_box_w3_layout) for i in range(len(new_labels)): column = i / 15 line = i % 15 check_item_w1 = QtGui.QCheckBox(new_labels[i], check_box_w1) check_item_w1.setStyleSheet("font-size: 8px; font-weight: normal") check_item_w2 = QtGui.QCheckBox(new_labels[i], check_box_w2) check_item_w2.setStyleSheet("font-size: 8px; font-weight: normal") check_item_w3 = QtGui.QCheckBox(new_labels[i], check_box_w3) check_item_w3.setStyleSheet("font-size: 8px; font-weight: normal") check_box_w1_layout.addWidget(check_item_w1, line, column) check_box_w2_layout.addWidget(check_item_w2, line, column) check_box_w3_layout.addWidget(check_item_w3, line, column) self.layout().addWidget(check_box_w1, 2, 2) self.layout().addWidget(check_box_w2, 2, 3) self.layout().addWidget(check_box_w3, 2, 4) button_ok_wrist = QtGui.QPushButton("Ok") button_ok_wrist.clicked.connect(lambda: self.labelling(filename, acq, new_tracks, new_labels, freq, bone_lenghts, bone_labels, mcp_estatic_error, mcp_inner_angle, mcp_inner_angle_error, mcp_middle_angle, mcp_middle_angle_error, mcp_outer_angle)) self.layout().addWidget(button_ok_wrist, 3, 4)
def processing(self): self.button_processing.hide() filename1 = QtGui.QFileDialog.getOpenFileName(self, "Open File", "Users/jessicaabreu") acq, data, headers = fp.open_c3d_data(str(filename1[0])) split_labels, split_tracks = fp.split_wrong_tracks_by_gradient(data, headers, acq.GetAnalogFrequency()) new_tracks, new_labels = fp.join_equivalent_tracks(split_tracks, split_labels, acq.GetAnalogFrequency()) viewer = BiomecViewer(new_tracks, new_labels) viewer_widget = viewer.edit_traits(parent=self, kind='subpanel').control self.layout().addWidget(viewer_widget, 2, 1) # making checkbox and plots figurex = plt.figure() canvasx = FigureCanvas(figurex) toolbarx = NavigationToolbar(canvasx, None) toolbarx.setIconSize(QtCore.QSize(12, 12)) toolbarx.setStyleSheet("background-color: #C0C0C0 ") ax_x = figurex.add_subplot(111) ax_x.cla() plt.xlabel('Time (s)', fontsize=10) plt.ylabel('Position (mm)', fontsize=10) canvasx.draw() figurey = plt.figure() canvasy = FigureCanvas(figurey) toolbary = NavigationToolbar(canvasy, None) toolbary.setIconSize(QtCore.QSize(12, 12)) toolbary.setStyleSheet("background-color: #C0C0C0 ") ax_y = figurey.add_subplot(111) ax_y.cla() plt.xlabel('Time (s)', fontsize=10) plt.ylabel('Position (mm)', fontsize=10) canvasy.draw() figurez = plt.figure() canvasz = FigureCanvas(figurez) toolbarz = NavigationToolbar(canvasz, None) toolbarz.setIconSize(QtCore.QSize(12, 12)) toolbarz.setStyleSheet("background-color: #C0C0C0 ") ax_z = figurez.add_subplot(111) ax_z.cla() plt.xlabel('Time (s)', fontsize=10) plt.ylabel('Position (mm)', fontsize=10) canvasz.draw() check_box = QtGui.QGroupBox("Plot Tracks") check_box_layout = QtGui.QGridLayout() check_box.setLayout(check_box_layout) for i in range(len(new_labels)): column = i / 5 line = i % 5 check_item = QtGui.QCheckBox(new_labels[i]) check_item.setStyleSheet("font-size: 8px; font-weight: normal") check_item.stateChanged.connect(self.wrapper_plot(ax_x, ax_y, ax_z, new_tracks[i, :, :], new_labels[i], check_item, figurex, figurey, figurez, canvasx, canvasy, canvasz, acq )) check_box_layout.addWidget(check_item, line, column) plot_layout = QtGui.QVBoxLayout() plot_layout.addWidget(canvasx) plot_layout.addWidget(toolbarx) plot_layout.addWidget(canvasy) plot_layout.addWidget(toolbary) plot_layout.addWidget(canvasz) plot_layout.addWidget(toolbarz) self.layout().addWidget(check_box, 1, 2) self.layout().addLayout(plot_layout, 2, 2) self.button_processing_labeling.show() self.button_processing_labeling.clicked.connect(lambda: self.processing_labeling(new_tracks, new_labels, filename1[0], acq)) self.button_save.show() self.button_save.clicked.connect(lambda: self.save(new_tracks, new_labels, filename1[0], acq, "pre_processed"))