def index_page(text="", prediction_message=""):
    """Main page of web app"""
    if request.method == "POST":
        clf = Classifier(DEFAULT_MODEL_PATH,
                         DEFAULT_VECTORIZER_PATH, DEFAULT_MLB_PATH)
        dialogue = request.form["text"]
        prediction = clf.predict(dialogue)
        prediction_message = " ".join(sorted(prediction))
    return render_template('prediction_page.html', text=text, prediction_message=prediction_message)
Esempio n. 2
0
class Main_1(tk.Frame):
    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)

        self.file = None
        self.clf = Clf('./results/pascalvoc_A.pt')

        backButton = tk.Button(self,
                               text='Back',
                               command=lambda: controller.show_frame(MainView))
        backButton.pack(side='top', fill='x')

        self.leftFrame = tk.Frame(self)
        self.leftFrame.pack(side="left", fill="both", expand=True)
        self.rightFrame = tk.Frame(self)
        self.rightFrame.pack(side="right", fill="both", expand=True)

        self.imgPanel = tk.Label(self.leftFrame,
                                 text=str(self.file or 'No file uploaded'))
        self.imgPanel.pack(side="left", fill="both", expand=True)

        self.results = tk.Label(self.rightFrame,
                                text='Prediction:\n {}'.format(None),
                                anchor='e')
        self.results.config(font=('Arial', 14))
        self.results.pack(side='top', fill='y', expand=True)

        openFile = tk.Button(self.rightFrame,
                             text="Open a Image",
                             command=self.uploadFile)
        openFile.config(bg='#8e8d8d', font=('Arial', 14))
        openFile.pack(side='bottom', fill='both', expand=True)

    def predict(self, img_path):
        self.results.config(text='Prediction:\n {}'.format('Calculating!!!'))
        self.results.update_idletasks()
        results = self.clf.predict(img_path)
        results_string = '\n'.join(results)
        if not results_string:
            results_string = None

        self.results.config(text='Prediction:\n {}'.format(results_string))
        self.results.update_idletasks()
        return

    def uploadFile(self):
        f = filedialog.askopenfilename()
        self.file = f
        _, ext = os.path.splitext(f)
        valid_ext = ['.png', '.jpg', '.jpeg', '.JPG', '.PNG']
        if ext not in valid_ext:
            self.imgPanel.configure(text='Invalid File Type: {}'.format(ext),
                                    image='')
            self.imgPanel.image = None

            self.imgPanel.update_idletasks()
            return

        else:
            to_predict = ImageTk.PhotoImage(pad_and_resize(f, 400))

            self.imgPanel.config(image=to_predict)
            self.imgPanel.image = to_predict
            self.imgPanel.update_idletasks()

            self.predict(f)