def __init__(self): super(SimpleExample1, self).__init__("FaceGate") # self.visible = True self.set_margin(300) self.formset = [('_firstname', '_middlename', '_lastname'), '_button', '_fullname', ' _image', ' '] # self.formset = [ { # 'Tab1':['_firstname','||','_middlename','||','_lastname'], # 'Tab2': ['_fullname'] # }, # '=',(' ','_button', ' ') ] #Use dictionaries for tabs #Use the sign '=' for a vertical splitter #Use the signs '||' for a horizontal splitter #Definition of the forms fields self._firstname = ControlText('First name', 'Default value') self._middlename = ControlText('Middle name') self._lastname = ControlText('Lastname name') self._fullname = ControlText('Full name') self._button = ControlButton('Press this button') self._image = ControlImage() self.run()
def __init__(self, *args, **kwargs): super().__init__('Ground Station Software') self.mapCenterLat = 41.0730202 self.mapCenterLong = -72.0839729 # Definition of the forms fields self._runbutton = ControlButton('Run') self._mapImage = ControlImage('map') self.scaleyboi = 18 newmap = smopy.Map( (self.mapCenterLat - mapScale[self.scaleyboi] / 2, self.mapCenterLong - mapScale[self.scaleyboi] / 2, self.mapCenterLat + mapScale[self.scaleyboi] / 2, self.mapCenterLong + mapScale[self.scaleyboi] / 2), z=self.scaleyboi, tileserver='http://192.168.1.152/osm_tiles/{z}/{x}/{y}.png') self.blank_map = newmap self.map = self.blank_map.to_numpy() self._mapImage.value = self.map self._runbutton.value = self.run_event # Define the organization of the Form Controls self.formset = [{'Tab1': ['_runbutton'], 'Tab2': ['_mapImage']}] self.update_my_loc_handler() self.update_map_center_handler()
def __init__(self): super(Example1, self).__init__('dir examples') self.parent = None self._directory = ControlDir('Choose a directory') self._file = ControlFile('Choose a file') self._filetree = ControlFilesTree('Choose a file') self._image = ControlImage('Image') self._boundaries = ControlBoundingSlider('Bounding', horizontal=True) self._button = ControlButton('Click') self._button.value = self.onButtonClick # self._directory.value=self.onButtonClick self._checkbox = ControlCheckBox('Choose a directory') self._checkboxList = ControlCheckBoxList('Choose a file') self._player = ControlPlayer('Choose a file') self._slider = ControlSlider('Slider') self._player.show() self._checkboxList.value = [('Item 1', True), ('Item 2', False), ('Item 3', True)] self._combobox = ControlCombo('Choose a item') self._list = ControlList('List label') self._progress = ControlProgress('Progress bar') self._visvisVolume = ControlVisVisVolume('Visvis') self._timeline = ControlEventTimeline('Timeline') self._combobox.add_item('Item 1', 'Value 1') self._combobox.add_item('Item 2', 'Value 2') self._combobox.add_item('Item 3', 'Value 3') self._combobox.add_item('Item 4') self._list.value = [('Item1', 'Item2', 'Item3',), ('Item3', 'Item4', 'Item5',)] imageWithVolume = np.zeros((100, 100, 100), np.uint8) imageWithVolume[30:40, 30:50, :] = 255 imageWithVolume[30:40, 70:72, :] = 255 self._visvisVolume.value = imageWithVolume self._visvis = ControlVisVis('Visvis') values1 = [(i, random.random(), random.random()) for i in range(130)] values2 = [(i, random.random(), random.random()) for i in range(130)] self._visvis.value = [values1, values2] self.formset = [ '_visvis' , '_directory' , '_button' , '_file' , '_boundaries' , '_filetree' , '_image' , '_slider' , ('_checkboxList', '_player') , ('_checkbox', ' ') , ('_combobox', ' ') , '_progress' , '=' , ('_visvisVolume', '||', '_list') , '_timeline' ]
def __loadFiles(self): self._infiles = list(ImageFinder.ifind(self._indir.value)) self._filescount.value = "Total Files Found to load: " + str( len(self._infiles)) self._progress.max = len(self._infiles) image_per_row = 2 rows_count = math.floor(len(self._infiles) / image_per_row) for row in range(rows_count): for c in range(image_per_row): img = ControlImage() img.parent = self._image_tbls print(self._infiles[c * row]) img.value = self._infiles[ c * row] # cv2.imread(self._infiles[c*row], 1) self._image_tbls.set_value(c, row, img)
def __init__(self, parent=None): super(BackgroundFinderWindow, self).__init__('Background finder', parent_win=parent) self.mainwindow = parent self.set_margin(5) self.setMinimumHeight(400) self.setMinimumWidth(400) self._panel = ControlEmptyWidget('Videos') self._image = ControlImage('Image') self._progress = ControlProgress('Progress') self._apply = ControlButton('Apply', checkable=True) self._matrixSize = ControlSlider('Gaussian blur matrix size', default=5, minimum=1, maximum=11) self._sigmaX = ControlSlider('Gaussian blur sigma X', default=5, minimum=1, maximum=11) self._jump_2_frame = ControlSlider('Jump n frames', default=100, minimum=1, maximum=10000) self._cmp_jump = ControlSlider('Compare with frame in front', default=100, minimum=1, maximum=10000) self._threshold = ControlSlider('Threshold', default=5, minimum=0, maximum=255) self._formset = [[ '_panel', '||', [ ('_matrixSize', '_sigmaX'), ('_jump_2_frame', '_cmp_jump', '_threshold'), '_image', ], ], '_apply', '_progress'] self.videos_dialog = VideosDialog(self) self._panel.value = self.videos_dialog self.videos_dialog.interval_visible = False self._apply.value = self.__apply_event self._apply.icon = conf.ANNOTATOR_ICON_PATH self._progress.hide()
class SimpleExample1(BaseWidget): def __init__(self): super(SimpleExample1, self).__init__("FaceGate") # self.visible = True self.set_margin(300) self.formset = [('_firstname', '_middlename', '_lastname'), '_button', '_fullname', ' _image', ' '] # self.formset = [ { # 'Tab1':['_firstname','||','_middlename','||','_lastname'], # 'Tab2': ['_fullname'] # }, # '=',(' ','_button', ' ') ] #Use dictionaries for tabs #Use the sign '=' for a vertical splitter #Use the signs '||' for a horizontal splitter #Definition of the forms fields self._firstname = ControlText('First name', 'Default value') self._middlename = ControlText('Middle name') self._lastname = ControlText('Lastname name') self._fullname = ControlText('Full name') self._button = ControlButton('Press this button') self._image = ControlImage() self.run() # #Define the button action # self._button.value = self.__buttonAction # def __buttonAction(self): # """Button action event""" # self._fullname.value = self._firstname.value +" "+ self._middlename.value + \ # " "+ self._lastname.value def run(self): self._image.value = 'numbered.jpg' self._image.repaint()
def __init__(self, session): """ :param session: session reference :type session: pycontrolgui.windows.detail.entities.session_window.SessionWindow """ super().__init__(session.name) self.session = session self._trials = ControlCombo('Trial', changed_event=self.__draw_diagram_evt) self._image = ControlImage('Diagram') self.formset = ['_trials', '_image'] self.__load_trials() self.__draw_diagram_evt()
class TomographGUI(BaseWidget): def __init__(self): super(TomographGUI,self).__init__('TomographGUI') self.formset = [('_file','_loadButton'), '_det_nr', '_angl_spread', '_angl_it', '_filter_size', ('_image', '_sinogram', '_output'), '_startButton',] #Definition of the forms fields self._file = ControlFile() self._loadButton = ControlButton('Load') self._det_nr = ControlText('Detectors number') self._angl_spread = ControlText('Angular spread') self._angl_it = ControlText('Angluar step') self._filter_size = ControlText('Filter size') self._image = ControlImage() self._sinogram = ControlImage() self._output = ControlImage() self._startButton = ControlButton('Start') self._loadButton.value = self.__load self._startButton.value = self.__start def __load(self): if (self._file.value): self._image.value = cv2.imread(self._file.value, cv2.IMREAD_GRAYSCALE); self._image.repaint() def __normalize(self, image): min = np.min(image) max = np.max(image) normalized = (image - min) / (max - min) return normalized def __start(self): if (self._image.value is None): return False det_nr = int(self._det_nr.value) ang_spread = int(self._angl_spread.value) it_ang = int(self._angl_it.value) filter_size = int(self._filter_size.value) image = cv2.imread(self._file.value, cv2.IMREAD_GRAYSCALE) radon = Radon(image, det_nr, ang_spread, it_ang, filter_size) radon.transform() sinogram = radon.getSinogram() self._sinogram.value = self.__normalize(sinogram) self._sinogram.repaint() radon.transform(inverse=True) result = radon.getResult() self._output.value = self.__normalize(result) self._output.repaint()
def __init__(self): super(TomographGUI,self).__init__('TomographGUI') self.formset = [('_file','_loadButton'), '_det_nr', '_angl_spread', '_angl_it', '_filter_size', ('_image', '_sinogram', '_output'), '_startButton',] #Definition of the forms fields self._file = ControlFile() self._loadButton = ControlButton('Load') self._det_nr = ControlText('Detectors number') self._angl_spread = ControlText('Angular spread') self._angl_it = ControlText('Angluar step') self._filter_size = ControlText('Filter size') self._image = ControlImage() self._sinogram = ControlImage() self._output = ControlImage() self._startButton = ControlButton('Start') self._loadButton.value = self.__load self._startButton.value = self.__start
def __init__(self, screening_info: dict, client: Client, pesel: str): BaseWidget.__init__(self, 'Person window') # Definition of the forms fields self._screening_info = screening_info self._client = client self._pesel = pesel self._image = self._client.service.getImage( self._screening_info['movie']['id_movie']) image_open = Image.open(io.BytesIO(self._image)) rgb_im = image_open.convert('RGB') if not os.path.exists("../resources/images"): os.makedirs("../resources/images") rgb_im.save( f'../resources/images/{str(self._screening_info["movie"]["id_movie"])}.jpg' ) self._dateField = ControlText( 'Date', enabled=False, default=self._screening_info['date'].strftime("%d-%m-%Y")) self._timeField = ControlText( 'Time', enabled=False, default=self._screening_info['date'].strftime("%H:%M")) self._titleField = ControlText( 'Title', enabled=False, default=self._screening_info['movie']['title']) self._descriptionField = ControlTextArea( 'Description', enabled=False, default=self._screening_info['movie']['description']) self._actorField = ControlList('Actors', enabled=False) self._actorField.horizontal_headers = ['Name', 'Surname'] for actor in self._screening_info['movie']['actors']: self._actorField += [actor['firstName'], actor['secondName']] self._directorField = ControlList("Director", enabled=False) self._directorField.horizontal_headers = ['Name', 'Surname'] self._directorField += [ self._screening_info['movie']['director']['firstName'], self._screening_info['movie']['director']['secondName'] ] self._imageField = ControlImage('Poster') self._imageField.value = cv2.imread( f'../resources/images/{str(self._screening_info["id_showing"])}.jpg' ) self._freeSeatsField = ControlTextArea( 'Free seats', enabled=False, default=self._screening_info['freePlaces']) self._chosenSeatsField = ControlText( 'Chosen seats (write down the numbers and separate them with ";")') self._buttonField = ControlButton('Reserve') self._panel = ControlDockWidget() # Define the button action self._buttonField.value = self.__buttonAction self.formset = [('_dateField', '_timeField'), ('_imageField', ['_titleField', '_descriptionField']), ('_directorField', '_actorField'), ('_freeSeatsField', '_chosenSeatsField'), '_buttonField', '_panel']
def __init__(self, *args, **kwargs): super().__init__('Computer vision algorithm example') self._gen = ControlText('Gen') self._tick = ControlText('Tick') self._ticks = ControlButton('Jump') self._button1 = ControlButton('Start') self._button2 = ControlButton('Stop') self._button3 = ControlButton('Pause') self._info = ControlText('Info') self._image = ControlImage('Image') self.width = 1000 self.height = 1000 self.FPS = 24 self.seconds = 10 #triangle = [-0.5, -0.5, 0, # 0.5, -0.5, 0, # 0, 0.5, 0] # #vertex_shader =""" #in vec4 position; #void main() #{ # gl_Position = position; #} #""" # # #fragment_shader =""" #void main() #{ # gl_FragColor = vec4(1.0f, 0.0f, 0.0f, 1.0f); #} #""" # #shader = OpenGL.GL.shaders.compileProgram(OpenGL.GL.shaders.compileShader(vertex_shader, GL_VERTEX_SHADER), # OpenGL.GL.shader.compileShader(fragment_shader, GL_FRAGMENT_SHADER)) #VBO = glGenBuffers(1) #glBindBuffer(GL_ARRAY_BUFFER, VBO) #glBufferData(GL_ARRAY_BUFFER, sizeof(triangle), triangle, GL_STATIC_DRAW) # #position = glGetAttribLocation(shader, "position") #glVertexAttribPointer(position, 3, GL_FLOAT, GL_FALSE, 0, None) #glEnableVertexAttribArray(position) # #glUseProgram(shader) # # # #self._opengl = ControlOpenGL() # # #glClearColor(0.,0.3,0.2,1.0) #Define the organization of the Form Controls self._formset = [ ('_gen', '_tick','_ticks','_button1', '_button2', '_button3'), '_info', '_image' ] #Define the button action self._button1.value = self.__buttonAction
def __init__(self): super(BaseStation, self).__init__('Station de base') self.robot = None #Definition of the forms fields self.textArea = ControlTextArea('Log') self.textTimer = ControlText('Timer') self.textState = ControlText('État') self.textVolt = ControlText('Voltage') self.textCourant = ControlText('Courant')#slot courant self.textPos = ControlText('Position') self.textPiece = ControlText('Pièce') self.textPlayer = ControlPlayer('Playground') self.textImage = ControlImage('Field') self.buttonLog = ControlButton('Start') self.buttonReset = ControlButton('Reset') self.formset = ['', '||', 'textArea', '||', (('textState', '||', 'textPiece'), '=', ('textVolt', '||', 'textCourant'), '=', ('textPos', '||', 'textTimer'), '=', ('buttonLog', '||', 'buttonReset'), '=', ('textPlayer', '||')), '||', '', '=', ''] # Define the button action self.buttonLog.value = self.button_log_action self.buttonReset.value = self.button_reset_action # Define communication entre les thread self.thread_com_log = Communicate() self.thread_com_log.speak[str].connect(self.update_log) self.thread_com_state = Communicate() self.thread_com_state.speak[str].connect(self.update_state) self.thread_com_volt = Communicate() self.thread_com_volt.speak[str].connect(self.update_volt) self.thread_com_pos = Communicate() self.thread_com_pos.speak[str].connect(self.update_pos) self.thread_com_piece = Communicate() self.thread_com_piece.speak[str].connect(self.update_piece) self.thread_com_image = Communicate() self.thread_com_image.speak[np.ndarray].connect(self.update_image) self.thread_com_timer = Communicate() self.thread_com_timer.speak[str].connect(self.update_timer) self.thread_com_courant = Communicate() self.thread_com_courant.speak[str].connect(self.update_courant) self.vision = MainController(self) self.web_socket = WebSocket(self.textArea, self) # debut visison/pathfinding self.camera_monde = CameraMonde(self.textPlayer, self) self.camera_monde.thread_start_camera() self.draw_playgroung = DrawPlayground(self.textImage, self.textPos) #self.draw_playgroung.draw_robot(8, 3) self.world = None self.image = None self.path_finding = None self.qr_Code = None
class GroundStation(BaseWidget): def __init__(self, *args, **kwargs): super().__init__('Ground Station Software') self.mapCenterLat = 41.0730202 self.mapCenterLong = -72.0839729 # Definition of the forms fields self._runbutton = ControlButton('Run') self._mapImage = ControlImage('map') self.scaleyboi = 18 newmap = smopy.Map( (self.mapCenterLat - mapScale[self.scaleyboi] / 2, self.mapCenterLong - mapScale[self.scaleyboi] / 2, self.mapCenterLat + mapScale[self.scaleyboi] / 2, self.mapCenterLong + mapScale[self.scaleyboi] / 2), z=self.scaleyboi, tileserver='http://192.168.1.152/osm_tiles/{z}/{x}/{y}.png') self.blank_map = newmap self.map = self.blank_map.to_numpy() self._mapImage.value = self.map self._runbutton.value = self.run_event # Define the organization of the Form Controls self.formset = [{'Tab1': ['_runbutton'], 'Tab2': ['_mapImage']}] self.update_my_loc_handler() self.update_map_center_handler() def run_event(self): """ After setting the best parameters run the full algorithm """ print("The function was executed") def update_my_loc(self, lat, long): x, y = self.blank_map.to_pixels(lat, long) self.map = cv2.circle(self.blank_map.to_numpy(), (int(x), int(y)), 2, (255, 0, 0), -1) self._mapImage.value = self.map def update_my_loc_handler(self): try: data = ser.readline() # print("data ", data) if data[0:6] == b'$GPGGA': msg = pynmea2.parse(str(data, "utf-8")) if msg.gps_qual != "0": newlat = float(msg.lat[0:2]) + float(msg.lat[2:]) / 60.0 if msg.lat_dir == "S": newlat = -newlat newlon = float(msg.lon[0:3]) + float(msg.lon[3:]) / 60.0 if msg.lon_dir == "W": newlon = -newlon # print("lat: ", newlat, " long: ", newlon) self.mapCenterLat = newlat self.mapCenterLong = newlon self.update_my_loc(newlat, newlon) self._mapImage.show() except: print("Something went wrong") threading.Timer(1, self.update_my_loc_handler).start() def update_map_center_handler(self): new_map = smopy.Map( (self.mapCenterLat - mapScale[self.scaleyboi] / 2, self.mapCenterLong - mapScale[self.scaleyboi] / 2, self.mapCenterLat + mapScale[self.scaleyboi] / 2, self.mapCenterLong + mapScale[self.scaleyboi] / 2), z=self.scaleyboi, tileserver='http://192.168.1.152/osm_tiles/{z}/{x}/{y}.png') self.blank_map = new_map threading.Timer(10, self.update_map_center_handler).start()