def show_data_empty(self): unable_open_s = _("Nothing enter") msg = _("You haven't entered anything yet! ") messagebox.showerror( unable_open_s, msg, )
def show_from(self, *args): show_f = self.get_dict_key_by_value( self.showfm.showf_t_dict, self.showfm.showf_optionmenu_sv.get()) if show_f == "file": self.face_src_path = tkf.askopenfilename( title=_("Select a file"), filetypes=[( _("Image or video"), "*." + (" *.".join(self.image_exts + self.video_exts)), )], initialdir="~", ) if len(self.face_src_path) < 1: return ext = os.path.splitext(self.face_src_path)[1][1:] self.showfm.showf_sv.set(self.face_src_path) if ext in self.image_exts: self.view_image() elif ext in self.video_exts: self.source = self.face_src_path self.play_video() elif show_f == "camera": self.source = 0 self.showfm.showf_sv.set(self.source) self.play_video()
def about_fn(self): if self.about_tl == None: self.about_tl = Toplevel(borderwidth=10) self.about_tl.title(_("About Funing")) self.about_tl.resizable(0, 0) Label(self.about_tl, text=_("Funing"), font=("", 25)).pack() Label(self.about_tl, text=settings.version).pack() self.source_page_label = Label( self.about_tl, text=settings.source_page, foreground="blue", cursor="hand2", ) self.source_page_label.bind( "<Button-1>", lambda e: webbrowser.open_new(settings.source_page), ) self.source_page_label.pack() Label(self.about_tl, text=_("Licensed under the MIT license")).pack() self.about_tl.mainloop() else: self.about_tl.destroy() self.about_tl = None pass
def __init__(self, frame): self.frame = frame self.face_show_frame = tk.Frame(self.frame) self.info_enter_frame = tk.Frame(self.frame) self.prevf_btn = tk.Button(self.face_show_frame, text=_("prev_symb")) self.curf_label = tk.Label(self.face_show_frame) self.nextf_btn = tk.Button(self.face_show_frame, text=_("next_symb")) self.ft_sb = tk.Scrollbar(self.info_enter_frame, orient=VERTICAL) self.face_text = Text( self.info_enter_frame, yscrollcommand=self.ft_sb.set ) self.save_btn = tk.Button(self.frame, text=_("Save")) self.ft_sb.config(command=self.face_text.yview)
def __init__(self, frame): self.frame = frame # video label self.vid_frame_label = tk.Label(self.frame) self.showf_sv = tk.StringVar(self.frame) self.showf_entry = tk.Entry(self.frame, width=10, textvariable=self.showf_sv) self.showf_go_btn = tk.Button(self.frame, text=_("GO")) self.showf_t_dict = {"file": _("File"), "camera": _("Camera")} self.showf_optionmenu_sv = tk.StringVar(self.frame, value=_("Open")) self.showf_optionmenu = tk.OptionMenu(self.frame, self.showf_optionmenu_sv, *self.showf_t_dict.values()) # comparison_tolerance entry self.ct_label = tk.Label(self.frame, text=_("tolerance") + ":") self.ct_stringvar = tk.StringVar(frame, ct) self.ct_entry = tk.Entry(self.frame, width=8, textvariable=self.ct_stringvar) # shoot self.pp_sv = tk.StringVar(frame, _("Pause")) self.pp_btn = tk.Button(self.frame, textvariable=self.pp_sv) self.rec_sv = tk.StringVar(frame, _("Recognize")) self.rec_btn = tk.Button(self.frame, textvariable=self.rec_sv) self.pick_sv = tk.StringVar(frame, _("Pick")) self.pick_btn = tk.Button(self.frame, textvariable=self.pick_sv)
def pause_play(self, *args): if self.source_type != 1: return if self.pause: self.pause = False self.refresh_frame() self.showfm.pp_sv.set(_("Pause")) if settings.debug: print("Play. . .") else: self.root_after_cancel() self.showfm.pp_sv.set(_("Play")) self.pause = True if settings.debug: print("Pause. . .")
def __init__(self): self.root = tk.Tk() self.root.title(_("Funing") + "(" + settings.version + ")") # frame self.showframe = ShowFrame(tk.Frame(self.root)) # entry_frame self.infoframe = InfoFrame(tk.Frame(self.root)) # rbmix_frame self.rbmixframe = RBMixFrame(tk.Frame(self.root))
def __init__(self): self.root = tk.Tk() self.root.title(_("Funing") + " " + settings.version) # frame self.showframe = ShowFrame(tk.Frame(self.root)) # entry_frame self.entryframe = EntryFrame(tk.Frame(self.root)) # lang_combobox self.langcombobox = LangCombobox(self.root) # infoframe self.infoframe = InfoFrame(tk.Frame(self.root))
def __init__(self, frame): self.frame = frame self.about_fn_btn = Button(self.frame, text=_("About Funing")) # language_combobox self.lang_combobox_var = tk.StringVar(self.frame) self.lang_code = settings.lang_code self.lang_combobox_var.set(Language.make(self.lang_code).autonym()) self.lang_combobox = ttk.Combobox( self.frame, textvariable=self.lang_combobox_var, values=tuple(self.locale_lang_display_names()), state="readonly", )
def __init__(self, frame): self.frame = frame self.face_show_frame = tk.Frame(self.frame) self.info_enter_frame = tk.Frame(self.frame) self.faces_frame = tk.Frame(self.frame) # self.curf_label = tk.Label( self.face_show_frame ) # self.opt_frame = tk.Frame( self.frame ) # self.prevf_btn = tk.Button( self.opt_frame, text = _('prev_symb')) # self.num_label = tk.Label( self.opt_frame, text = _('*/*') ) # self.nextf_btn = tk.Button( self.opt_frame, text = _('next_symb')) self.ft_sb = tk.Scrollbar(self.info_enter_frame, orient=VERTICAL) self.face_text = Text(self.info_enter_frame, yscrollcommand=self.ft_sb.set) self.face_text_tip_label = Label( self.frame, text=_( "Write it with certain rules so that you can analyze it later" ), font=("", 10), ) self.save_btn = tk.Button(self.frame, text=_("Save")) self.ft_sb.config(command=self.face_text.yview)
def change_language(self, lang): lang_display_name = self.rbmixfm.lang_combobox_var.get() new_lang_code = Language.find(lang_display_name).to_tag() if settings.debug: print( "new_lang_code: ", new_lang_code, "lang_code: ", settings.lang_code, ) if new_lang_code == settings.lang_code: return restartapp = messagebox.askyesno(title=_("Restart Funing Now?")) if restartapp: settings.config_yml["lang_code"] = new_lang_code yaml.dump(settings.config_yml, open(settings._config_path, "w")) sys_executable = sys.executable os.execl(sys_executable, sys_executable, *sys.argv) pass
def show_info(self, label, _id, index): if (self.zoomed_in_face_label[0] != 0) and (self.zoomed_in_face_label[0] != label): self.restore_face_label_size(index) frame = self.showed_face_frames[index] frame = cv2.resize(frame, self.zoom_in_size) vid_img = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) vid_img = Image.fromarray(vid_img) imgtk = ImageTk.PhotoImage(image=vid_img) label.imgtk = imgtk label.configure(image=imgtk) self.zoomed_in_face_label = (label, index) info_file_path = os.path.join(settings.infos_path, _id) self.infofm.face_text.delete(1.0, END) if not os.path.exists(info_file_path): self.infofm.face_text.insert("1.0", _("No informations found")) self.infofm.face_text.insert("1.0", open(info_file_path, "r").read())
def show_nsrc_error(self): unable_open_s = _("Unable to open video source") messagebox.showerror(unable_open_s, unable_open_s + ": " + self.showf_sv)
def __init__(self): self.mainui = MainUI() self.mainui.place() self.source = -1 self.root_after = -1 # face num for face_label self.lang_code = settings.lang_code self.fxfy = None self.image_exts = ["jpg", "png", "jpeg", "webp"] self.video_exts = ["mp4", "avi", "3gp", "webm", "mkv"] self.showf_sv = None self.showfm = self.mainui.showframe self.infofm = self.mainui.infoframe self.rbmixfm = self.mainui.rbmixframe self.about_tl = None # vid self.vid = None self.vid_width = 0 self.vid_height = 0 self.vid_fps = 0 self.source_type = -1 # 0-> img , 1-> video self.cur_frame = None self.face_rects = [] self.picked_face_frames = [] self.showed_face_frames = [] self.show_size = (200, 200) self.zoom_in_size = (210, 210) self.save_size = (100, 100) self.zoomed_in_face_label = (0, 0) self.doing = "p" # 'p'->'pick', r->'rec' self.pause = False self.face_frames = [] self.curf_index = 0 # rec_result self.rec_gray_img = None # rec_faces self.recfs = [] # info self.cur_info_id = None self.info_ids = [] # cv2 self.hff_xml_path = os.path.join( haarcascades, "haarcascade_frontalface_default.xml") self.recognizer = cv2.face.EigenFaceRecognizer_create() self.face_casecade = cv2.CascadeClassifier(self.hff_xml_path) self.face_enter_count = settings.face_enter_count # screen try: self.screenwidth = self.mainui.root.winfo_screenwidth() self.screenheight = self.mainui.root.winfo_screenheight() except: print(_("No desktop environment is detected! (^_^)")) exit() if not settings.data_empty(): self.recognizer_train() self.set_ui_events() self.mainui.mainloop()