from PyQt5.QtCore import Qt from PyQt5.QtWidgets import (QAction, QApplication, QWidget,QGridLayout) from ubuwidgets import (Button, ComboWidget, Board) # Import datasets, classifiers and performance metrics from sklearn import svm from sklearn.externals import joblib class MainWindow(QWidget): def __init__(self,parent=None): super(MainWindow, self).__init__(parent) self.scribbleArea = Board() self.clearButton = Button(self, "Clear Image", self.on_clear) self.trainButton = Button(self, "Train", self.on_train) self.saveCombo = ComboWidget(self, "Label: ", "Save", self.on_save) self.testCombo = ComboWidget(self, "Result: ", "Test", self.on_test, True) grid = QGridLayout() grid.addWidget(self.scribbleArea,1,0) grid.addWidget(self.clearButton,2,0) grid.addWidget(self.trainButton,3,0) grid.addWidget(self.saveCombo,4,0) grid.addWidget(self.testCombo,5,0) self.setLayout(grid) self.setWindowTitle("number ubu") self.resize(512, 700) def on_clear(self): self.scribbleArea.clearImage() def on_train(self): #เตรียมข้อมูลสำหรับฝึก print('training..') # สร้าง classifier: a support vector classifier # สอนให้คอมพิวเตอร์จดจำ #เซฟ model #วัดประสิทธิภาพของโมเดล def on_save(self): print('on_save') self.scribbleArea.saveImage(self.saveCombo.text()) self.scribbleArea.clearImage() def on_test(self): print("testing...") #เตรียมข้อมูลสำหรับทดสอบ #โหลดโมเดล #ทำการทำนาย #แสดงผลการทำนาย def save_model(self, classifier): joblib.dump(classifier, 'svmModel.pkl') print("saved model") def load_model(self): clf = joblib.load('svmModel.pkl') print("loaded model") return clf if __name__ == '__main__': import sys app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_())