Example #1
0
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()
Example #2
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()