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()
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()