コード例 #1
0
class Main(object):

    def __init__(self):
        self.processor = Process()
        self.control = Control()
        self.width = 800   
        self.height = 600
        self.fps = 1000 / 60
        self.UI_handler = []

    def start(self):
        self.root = Tk()
        self.root.title("Motion Control")
        self.canvas = Canvas(self.root, width=self.width, height=self.height)
        self.canvas.pack()
        self.timerEventListener()
        self.root.mainloop()
        self.closeEvent()

    def timerEventListener(self):
        if (self.fps == None):
            return 
        self.timerEvent()
        self.refreshUI()
        self.canvas.after(self.fps, self.timerEventListener)      

    def timerEvent(self):
        self.processor.process()

    def closeEvent(self):
        self.processor.close()

    def drawRealtimeImages(self):
        for handle in self.UI_handler:
            self.canvas.delete(handle)
        self.UI_handler = []
        view = Process.BGRtoRGBA(self.processor.original_image, self.width / 2, self.height / 2)
        self.view1 = ImageTk.PhotoImage(image=Image.fromarray(view))
        self.processor.paint()
        view = Process.BGRtoRGBA(self.processor.drawing_canvas, self.width / 2, self.height / 2)
        self.view2 = ImageTk.PhotoImage(image=Image.fromarray(view))
        view = Process.GRAYtoRGBA(self.processor.thresholded_image, self.width / 2, self.height / 2)
        self.view3 = ImageTk.PhotoImage(image=Image.fromarray(view))
        self.UI_handler.append(self.canvas.create_image(0, 0, image=self.view1, anchor="nw"))
        self.UI_handler.append(self.canvas.create_image(800, 600, image=self.view2, anchor="se"))
        self.UI_handler.append(self.canvas.create_image(0, 600, image=self.view3, anchor="sw"))
        if hasattr(self.processor, 'defect_point') and len(self.processor.defect_point) != 0 :
            self.UI_handler.append(self.canvas.create_text(750, 20, text="Fingers: " + str(len(self.processor.defect_point) - 2), anchor="ne", font="15"))
        else :
            self.UI_handler.append(self.canvas.create_text(750, 20, text="Fingers: " + str(0), anchor="ne", font="15"))
        if self.control.signal == True :
            self.UI_handler.append(self.canvas.create_text(750, 40, text="Control Mode: On", anchor="ne", font="15"))
        else :
            self.UI_handler.append(self.canvas.create_text(750, 40, text="Control Mode: Off", anchor="ne", font="15"))
        
    def refreshUI(self):
        self.drawRealtimeImages()
        if hasattr(self.processor, 'defect_point') :
            self.control.gestureAnalysis(self.processor.defect_point,self.processor.center)
コード例 #2
0
ファイル: Region.py プロジェクト: varuns23/monoJetTools
 def setSumOfBkg(self):
     if "SumOfBkg" in self.processes: return
     sumofbkg = Process('SumOfBkg', [], {},
                        'sumofbkg',
                        year=self.year,
                        region=self.region)
     for process in self:
         if process.proctype == 'bkg':
             sumofbkg.add(process)
     sumofbkg.variable = self.variable
     sumofbkg.process = MCOrderMap[self.region][0]
     self.processes['SumOfBkg'] = sumofbkg
     return self['SumOfBkg']
コード例 #3
0
 def run_sth(self):
     
     while True:
         try:
             __passfreq = float(self.frequency_box.get())
             __passamp = []
             for i in range(self.__N):
                 __passamp.append(float(self.__slider_amps[i].get()))
             break
         except ValueError:
             print("Oops!  That was not a valid number.  Try again...")
             break
     
     # Create the wav file data
     (__wave,__file) = Process.process(self,__passfreq,__passamp,self.__N)
     
     # Write the file
     wavfile.write(__file, 44100,__wave)
     
     # Play the file using pygame
     mixer.init()
     mixer.music.load(__file)
     mixer.music.play()