コード例 #1
0
ファイル: sampleWidget.py プロジェクト: flatline-84/facegate
    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()
コード例 #2
0
    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()
コード例 #3
0
    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'
        ]
コード例 #4
0
ファイル: app.py プロジェクト: bitpuppet/image-deduplicator
    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()
コード例 #6
0
ファイル: sampleWidget.py プロジェクト: flatline-84/facegate
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()
コード例 #7
0
    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()
コード例 #8
0
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()
コード例 #9
0
    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
コード例 #10
0
    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']
コード例 #11
0
    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
コード例 #12
0
    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
コード例 #13
0
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()