Esempio n. 1
0
    def __init__(self, parent, image_class=None):
        super(signalAveragingWindow, self).__init__(parent)

        # Initialise the subwindow
        self.parent = parent
        self.image_class = image_class
        self.averaging_result = None

        # Generate the window
        self.mainWidget = qtw.QWidget()
        self.mainLayout = qtw.QVBoxLayout(self.mainWidget)
        self.setWindowTitle("Signal vs. Averaging")

        # Populate the panel
        self.createPathSelection(self.mainLayout)
        self.mainLayout.addWidget(CHorizontalSeparator())
        self.createAveragingSelection(self.mainLayout)
        self.mainLayout.addWidget(CHorizontalSeparator())
        self.createGraphDisplay(self.mainLayout)
        self.createSignalSelection(self.mainLayout)
        self.mainLayout.addWidget(CHorizontalSeparator())
        self.createUserActions(self.mainLayout)

        # Display the panel
        self.mainWidget.setLayout(self.mainLayout)
        self.setCentralWidget(self.mainWidget)
        self.show()
        self.setMinimumSize(600, 650)
        self.resize(600, 650)

        # Initialise
        self.initialiseDisplay()
Esempio n. 2
0
    def __init__(self, parent, image_class=None):
        super(particleDetectionWindow, self).__init__(parent)

        # Initialise the subwindow
        self.parent = parent
        self.image_class = image_class
        #self.setWindowModality(qtc.Qt.ApplicationModal)

        # Generate the window
        self.mainWidget = qtw.QWidget()
        self.mainLayout = qtw.QVBoxLayout(self.mainWidget)
        self.setWindowTitle("Particle Detection")

        # Populate the panel
        self.createDetectionControls(self.mainLayout)
        self.mainLayout.addWidget(CHorizontalSeparator())
        self.createPreviewActions(self.mainLayout)
        self.mainLayout.addWidget(CHorizontalSeparator())
        self.createUserActions(self.mainLayout)

        # Display the panel
        self.mainWidget.setLayout(self.mainLayout)
        self.setCentralWidget(self.mainWidget)
        self.show()
        self.setFixedSize(self.size())

        # Update the panel with image content
        self.initializeDetection()
Esempio n. 3
0
    def __init__(self, parent, image_array=None):
        super(backgroundCorrectionWindow, self).__init__(parent)

        # Initialise the subwindow
        self.parent = parent
        self.image_array = image_array
        self.setWindowModality(qtc.Qt.ApplicationModal)

        # Generate the window
        self.mainWidget = qtw.QWidget()
        self.mainLayout = qtw.QVBoxLayout(self.mainWidget)
        self.setWindowTitle("Background Correction")

        # Populate the panel
        self.createCorrectionSettings(self.mainLayout)
        self.mainLayout.addWidget(CHorizontalSeparator())
        self.createCorrectionOptions(self.mainLayout)
        self.mainLayout.addWidget(CHorizontalSeparator())
        self.createUserActions(self.mainLayout)

        # Display the panel
        self.mainWidget.setLayout(self.mainLayout)
        self.setCentralWidget(self.mainWidget)
        self.show()
        self.setFixedSize(self.size())

        # Update the panel with image content
        self.analyseStack()
Esempio n. 4
0
    def __init__(self, parent, file_path=None):
        super(readMetadataWindow, self).__init__(parent)

        # Initialise the subwindow
        self.parent = parent
        self.file_path = file_path

        # Load the file
        self.loadFromFile(file_path)

        # Generate the window
        self.mainWidget = qtw.QWidget()
        self.mainLayout = qtw.QVBoxLayout(self.mainWidget)
        self.setWindowTitle("Read Metadata")

        # Populate the panel
        self.createGeneralContentDisplay(self.mainLayout)
        self.mainLayout.addWidget(CHorizontalSeparator())
        self.createContentTable(self.mainLayout)
        self.mainLayout.addWidget(CHorizontalSeparator())
        self.createUserActions(self.mainLayout)

        # Display the panel
        self.mainWidget.setLayout(self.mainLayout)
        self.setCentralWidget(self.mainWidget)
        self.show()

        # Set the size
        if self.data_type == 'experiment':
            self.setMinimumSize(700,600)
        elif self.data_type == 'fast_record':
            self.setMinimumSize(500,600)
Esempio n. 5
0
    def __init__(self, name, parent):
        super(TrajectoryControlsPanel, self).__init__(name, parent)

        # Initialise the subwindow
        self.parent = parent
        self.trajectory = None
        self.setAllowedAreas(qtc.Qt.LeftDockWidgetArea
                             | qtc.Qt.RightDockWidgetArea)

        self.mainWidget = qtw.QWidget()
        self.mainLayout = qtw.QVBoxLayout(self.mainWidget)

        # Populate the panel
        self.createVisualisationDisplay(self.mainLayout)
        self.mainLayout.addWidget(CHorizontalSeparator())
        self.createPathSelectionDisplay(self.mainLayout)
        self.mainLayout.addWidget(CHorizontalSeparator())
        self.createTrajectoryFileActions(self.mainLayout)

        # Display the panel
        self.mainLayout.setAlignment(qtc.Qt.AlignTop)
        self.mainWidget.setLayout(self.mainLayout)
        self.setWidget(self.mainWidget)
        #self.show()
        #self.setFixedSize(self.size())

        # Add listeners
        self.topLevelChanged.connect(self.detectLocationChange)
Esempio n. 6
0
    def __init__(self, parent, image_class=None):
        super(contrastCorrectionWindow, self).__init__(parent)

        # Initialise the subwindow
        self.parent = parent
        self.image_class = image_class
        self.analyzed_image = image_class.image.source
        self.auto_attempt = 0
        self.setWindowModality(qtc.Qt.ApplicationModal)

        # Generate the window
        self.mainWidget = qtw.QWidget()
        self.mainLayout = qtw.QVBoxLayout(self.mainWidget)
        self.setWindowTitle("Brightness & Contrast")

        # Populate the panel
        self.createGraphDisplay(self.mainLayout)
        self.mainLayout.addWidget(CHorizontalSeparator())
        self.createBrightnessControls(self.mainLayout)
        self.mainLayout.addWidget(CHorizontalSeparator())
        self.createBrightnessActions(self.mainLayout)
        self.createUserActions(self.mainLayout)

        # Display the panel
        self.mainWidget.setLayout(self.mainLayout)
        self.setCentralWidget(self.mainWidget)
        self.show()
        self.setFixedSize(375, 600)

        # Update the panel with image content
        self.getDistribution()
Esempio n. 7
0
    def __init__(self, parent, image_array=None):
        super(frameAveragingWindow, self).__init__(parent)

        # Initialise the subwindow
        self.parent = parent
        self.image_array = image_array
        self.max_n = self.image_array.shape[0]
        self.setWindowModality(qtc.Qt.ApplicationModal)

        # Generate the window
        self.mainWidget = qtw.QWidget()
        self.mainLayout = qtw.QVBoxLayout(self.mainWidget)
        self.setWindowTitle("Frame Averaging")

        # Populate the panel
        self.createCorrectionSettings(self.mainLayout)
        self.mainLayout.addWidget(CHorizontalSeparator())
        self.createInformationDisplay(self.mainLayout)
        self.mainLayout.addWidget(CHorizontalSeparator())
        self.createUserActions(self.mainLayout)

        # Display the panel
        self.mainWidget.setLayout(self.mainLayout)
        self.setCentralWidget(self.mainWidget)
        self.show()
        self.setFixedSize(300, 350)

        # Update the panel with image content
        self.calculateInfos()
Esempio n. 8
0
    def __init__(self, parent, image_class=None):
        super(saveSingleImageWindow, self).__init__(parent)

        # Initialise the subwindow
        self.parent = parent
        self.image_class = image_class

        # Generate the window
        self.mainWidget = qtw.QWidget()
        self.mainLayout = qtw.QVBoxLayout(self.mainWidget)
        self.setWindowTitle("Save Single Frame(s)...")

        # Populate the panel
        self.createSaveFileDisplay(self.mainLayout)
        self.mainLayout.addWidget(CHorizontalSeparator())
        self.createSaveContentDisplay(self.mainLayout)
        self.mainLayout.addWidget(CHorizontalSeparator())
        self.createUserActions(self.mainLayout)

        # Display the panel
        self.mainWidget.setLayout(self.mainLayout)
        self.setCentralWidget(self.mainWidget)
        self.show()
        self.setFixedSize(self.size())

        # Initialise the display
        self.updateRadioButton()
Esempio n. 9
0
    def __init__(self, parent, image_array=None):
        super(fluctuationCorrectionWindow, self).__init__(parent)

        # Initialise the subwindow
        self.parent = parent
        self.image_array = image_array
        self.setWindowModality(qtc.Qt.ApplicationModal)

        # Generate the window
        self.mainWidget = qtw.QWidget()
        self.mainLayout = qtw.QVBoxLayout(self.mainWidget)
        self.setWindowTitle("Intensity Fluctuations...")

        # Populate the panel
        self.createGraphDisplay(self.mainLayout)
        self.mainLayout.addWidget( CHorizontalSeparator() )
        self.createStatisticsDisplay(self.mainLayout)
        self.mainLayout.addWidget( CHorizontalSeparator() )
        self.createUserActions(self.mainLayout)

        # Display the panel
        self.mainWidget.setLayout(self.mainLayout)
        self.setCentralWidget(self.mainWidget)
        self.show()
        self.setFixedSize(450,450)

        # Update the panel with image content
        self.plotFluctuations()
Esempio n. 10
0
    def __init__(self, parent, image_class=None, path_id=0):
        super(cropCenterWindow, self).__init__(parent)

        # Initialise the subwindow
        self.parent = parent
        self.image_class = image_class
        self.path_id = path_id
        self.setWindowModality(qtc.Qt.ApplicationModal)

        # Generate the window
        self.mainWidget = qtw.QWidget()
        self.mainLayout = qtw.QVBoxLayout(self.mainWidget)
        self.setWindowTitle("Crop and Center")

        # Populate the panel
        self.createMiniDisplay(self.mainLayout)
        self.createSizeControl(self.mainLayout)
        self.mainLayout.addWidget(CHorizontalSeparator())
        self.createUserActions(self.mainLayout)

        # Display the panel
        self.mainWidget.setLayout(self.mainLayout)
        self.setCentralWidget(self.mainWidget)
        self.show()
        #self.setFixedSize(375,600)

        # Update the panel with image content
        self.getCenteredPath()
Esempio n. 11
0
    def __init__(self, parent, metadata_type=None, file_contents=None):
        super(seekMetadataWindow, self).__init__(parent)

        # Initialise the subwindow
        self.parent = parent
        self.all_contents = file_contents
        self.data_type = metadata_type

        # Load the files
        self.loadFromFolder(file_contents)

        # Generate the window
        self.mainWidget = qtw.QWidget()
        self.mainLayout = qtw.QVBoxLayout(self.mainWidget)
        self.setWindowTitle("List Metadata")

        # Populate the panel
        self.createDataSelection(self.mainLayout)
        self.createDataTableDisplay(self.mainLayout)
        self.mainLayout.addWidget(CHorizontalSeparator())
        self.createUserActions(self.mainLayout)

        # Display the panel
        self.mainWidget.setLayout(self.mainLayout)
        self.setCentralWidget(self.mainWidget)
        self.show()
        self.setMinimumSize(650, 450)
Esempio n. 12
0
    def __init__(self, parent):
        super(darkToBrightCorrectionWindow, self).__init__(parent)

        # Initialise the subwindow
        self.parent = parent
        #self.setWindowModality(qtc.Qt.ApplicationModal)

        # Generate the window
        self.mainWidget = qtw.QWidget()
        self.mainLayout = qtw.QVBoxLayout(self.mainWidget)
        self.setWindowTitle("Dark Particles to Bright")

        # Populate the panel
        self.createCorrectionSettings(self.mainLayout)
        self.mainLayout.addWidget(CHorizontalSeparator())
        self.createUserActions(self.mainLayout)

        # Display the panel
        self.mainWidget.setLayout(self.mainLayout)
        self.setCentralWidget(self.mainWidget)
        self.show()
        self.setFixedSize(self.size())

        # Initialise the display
        self.initialiseDisplay()
        self.refreshFrameDisplay()
Esempio n. 13
0
    def createScaleSettings(self, parentWidget):

        # Generate the widget
        self.scaleSettingsWidget = qtw.QWidget()
        self.scaleSettingsLayout = qtw.QGridLayout(self.scaleSettingsWidget)

        # Label for space scale
        current_row = 0
        self.scaleSettingsLayout.addWidget(CLabel("Space Scale:"), current_row,
                                           0, 1, 2)

        # Entry for the distance in pixel
        current_row += 1
        self.scaleSettingsLayout.addWidget(qtw.QLabel("Distance in pixels"),
                                           current_row, 0)
        self.pixelDistanceEntry = qtw.QLineEdit()
        self.pixelDistanceEntry.setText(str(
            self.image_class.scale.space_scale))
        self.scaleSettingsLayout.addWidget(self.pixelDistanceEntry,
                                           current_row, 1)

        # Entry for the real distance
        current_row += 1
        self.scaleSettingsLayout.addWidget(qtw.QLabel("Known distance"),
                                           current_row, 0)
        self.knownDistanceEntry = qtw.QLineEdit()
        self.knownDistanceEntry.setText("1")
        self.scaleSettingsLayout.addWidget(self.knownDistanceEntry,
                                           current_row, 1)

        # Entry for the length unit
        current_row += 1
        self.scaleSettingsLayout.addWidget(qtw.QLabel("Unit of length"),
                                           current_row, 0)
        self.lengthUnitEntry = qtw.QLineEdit()
        self.lengthUnitEntry.setText(self.image_class.scale.space_unit)
        self.scaleSettingsLayout.addWidget(self.lengthUnitEntry, current_row,
                                           1)

        current_row += 1
        self.scaleSettingsLayout.addWidget(CHorizontalSeparator(), current_row,
                                           0, 1, 2)

        # Label for time scale
        current_row += 1
        self.scaleSettingsLayout.addWidget(CLabel("Time Scale:"), current_row,
                                           0, 1, 2)

        # Entry for the length unit
        current_row += 1
        self.scaleSettingsLayout.addWidget(qtw.QLabel("Frame rate"),
                                           current_row, 0)
        self.frameRateEntry = qtw.QLineEdit()
        self.frameRateEntry.setText(str(self.image_class.scale.frame_rate))
        self.scaleSettingsLayout.addWidget(self.frameRateEntry, current_row, 1)

        # Display the widget
        self.scaleSettingsWidget.setLayout(self.scaleSettingsLayout)
        parentWidget.addWidget(self.scaleSettingsWidget)
Esempio n. 14
0
    def createGeneralSettings(self):

        # Generate the widget
        self.generalSettingsWidget = qtw.QWidget()
        self.generalSettingsLayout = qtw.QVBoxLayout(self.generalSettingsWidget)

        # Settings for image opening
        self.generalSettingsLayout.addWidget( CLabel("Open Image(s):") )

        # Default type of object
        self.imageTypeButtonGroupWidget = qtw.QWidget()
        self.imageTypeButtonGroupLayout = qtw.QVBoxLayout(self.imageTypeButtonGroupWidget)

        self.imageTypeGroupButton = qtw.QButtonGroup(self.imageTypeButtonGroupWidget)

        self.singleFileRadiobutton = qtw.QRadioButton("Single File")
        self.singleFileRadiobutton.setChecked( self.parent.config.single_images )
        self.imageTypeGroupButton.addButton(self.singleFileRadiobutton)
        self.imageTypeButtonGroupLayout.addWidget(self.singleFileRadiobutton)

        self.imageFolderRadiobutton = qtw.QRadioButton("Images Folder")
        self.imageFolderRadiobutton.setChecked( not self.parent.config.single_images )
        self.imageTypeGroupButton.addButton(self.imageFolderRadiobutton)
        self.imageTypeButtonGroupLayout.addWidget(self.imageFolderRadiobutton)

        self.imageTypeButtonGroupWidget.setLayout(self.imageTypeButtonGroupLayout)
        self.imageTypeButtonGroupWidget.setContentsMargins(0, 0, 0, 0)
        self.generalSettingsLayout.addWidget(self.imageTypeButtonGroupWidget)

        # Load automatically with the recommandation
        self.autoOpenImageCheckBox = qtw.QCheckBox("Auto-load with suggestions?")
        self.autoOpenImageCheckBox.setChecked( self.parent.config.autoload_images )
        self.generalSettingsLayout.addWidget(self.autoOpenImageCheckBox)

        # Load automatically with the recommandation
        self.autoBackgroundCorrectionCheckBox = qtw.QCheckBox("Correct background automatically?")
        self.autoBackgroundCorrectionCheckBox.setChecked( self.parent.config.auto_background )
        self.generalSettingsLayout.addWidget(self.autoBackgroundCorrectionCheckBox)

        self.generalSettingsLayout.addWidget( CHorizontalSeparator() )

        # Add dark theme checkbox
        #self.darkThemeCheckBox = qtw.QCheckBox("Use dark theme?")
        #self.darkThemeCheckBox.setChecked( self.parent.config.dark_theme )
        #self.generalSettingsLayout.addWidget(self.darkThemeCheckBox)

        # Add empty widget
        for i in range(8):
            self.generalSettingsLayout.addWidget(qtw.QWidget())

        # Display the widget
        self.generalSettingsWidget.setLayout(self.generalSettingsLayout)
        return self.generalSettingsWidget
Esempio n. 15
0
    def __init__(self, parent, image_class=None, path_id=0):
        super(PathEditorWindow, self).__init__(parent)

        # Initialise the subwindow
        self.parent = parent
        self.image_class = image_class
        self.setWindowModality(qtc.Qt.ApplicationModal)

        # Initialise the parameters
        self.current_path = path_id
        self.current_track = None
        self.current_frame = self.image_class.frame
        self.n_frames = self.image_class.n_frames
        self.zoom = 1

        # Generate the window
        self.mainWidget = qtw.QWidget()
        self.mainLayout = qtw.QVBoxLayout(self.mainWidget)
        self.setWindowTitle("Edit Paths")

        # Populate the panel
        self.createPathSelection(self.mainLayout)
        self.createNavigationWidget(self.mainLayout)
        self.mainLayout.addWidget(CHorizontalSeparator())
        self.createTableWidget(self.mainLayout)
        self.mainLayout.addWidget(CHorizontalSeparator())
        self.createUserActions(self.mainLayout)

        # Display the panel
        self.mainWidget.setLayout(self.mainLayout)
        self.setCentralWidget(self.mainWidget)
        self.show()
        #self.setFixedSize(350,275)

        # Initialise the display
        self.getPath(path_id=path_id)
        self.populateTable()
        self.initialiseDisplay()
        self.current_frame = -1
        self.changeFrame(frame_id=self.image_class.frame)
Esempio n. 16
0
    def __init__(self, parent, image_class=None):
        super(particleDiffusionWindow, self).__init__(parent)

        # Initialise the subwindow
        self.parent = parent
        self.trajectory = None
        self.path_list = None
        self.loaded_trajectory = None
        self.image_class = image_class

        self.space_scale = None
        self.space_unit = None
        self.frame_rate = None

        # Generate the window
        self.mainWidget = qtw.QWidget()
        self.mainLayout = qtw.QVBoxLayout(self.mainWidget)
        self.setWindowTitle("Mean Squared Displacement")

        # Populate the panel
        self.createTrajectorySelection(self.mainLayout)
        self.mainLayout.addWidget(CHorizontalSeparator())
        self.createScaleSelection(self.mainLayout)
        self.mainLayout.addWidget(CHorizontalSeparator())
        self.createGraphDisplay(self.mainLayout)
        #self.createSignalSelection(self.mainLayout)
        self.mainLayout.addWidget(CHorizontalSeparator())
        self.createUserActions(self.mainLayout)

        # Display the panel
        self.mainWidget.setLayout(self.mainLayout)
        self.setCentralWidget(self.mainWidget)
        self.show()
        self.setMinimumSize(575, 675)
        self.resize(575, 675)

        # Initialise
        self.initialiseDisplay()
Esempio n. 17
0
    def __init__(self, parent):
        super(openImageWindow, self).__init__(parent)

        # Initialise the subwindow
        self.parent = parent
        self.image_path = None

        # Generate the window
        self.mainWidget = qtw.QWidget()
        self.mainLayout = qtw.QVBoxLayout(self.mainWidget)
        self.setWindowTitle("Open Image or Stack...")

        # Populate the panel
        self.createFileBrowsingDisplay(self.mainLayout)
        self.mainLayout.addWidget(CHorizontalSeparator())
        self.createImageInfosDisplay(self.mainLayout)
        self.mainLayout.addWidget(CHorizontalSeparator())
        self.createUserActions(self.mainLayout)

        # Display the panel
        self.mainWidget.setLayout(self.mainLayout)
        self.setCentralWidget(self.mainWidget)
        self.show()
Esempio n. 18
0
    def __init__(self, parent, image_class=None):
        super(analyseSignalWindow, self).__init__(parent)

        # Initialise the subwindow
        self.parent = parent
        self.image_class = image_class

        self.single = True
        self.all_checkboxes = []
        self.values = []
        self.errors = []

        # Generate the window
        self.mainWidget = qtw.QWidget()
        self.mainLayout = qtw.QVBoxLayout(self.mainWidget)
        self.setWindowTitle("Measure Signals")

        # Populate the panel
        self.createProcessSelection(self.mainLayout)
        self.mainLayout.addWidget(CHorizontalSeparator())
        self.createPropertiesTable(self.mainLayout)
        self.createResultDisplay(self.mainLayout)
        self.mainLayout.addWidget(CHorizontalSeparator())
        self.createUserActions(self.mainLayout)

        # Display the panel
        self.mainWidget.setLayout(self.mainLayout)
        self.setCentralWidget(self.mainWidget)
        self.show()
        self.setMinimumSize(550, 475)

        # Initialise
        if self.image_class.trajectory.signals is None:
            self.getProperties()
        else:
            self.populateTable()
Esempio n. 19
0
    def __init__(self, parent):
        super(convertStackWindow, self).__init__(parent)

        # Initialise the subwindow
        self.parent = parent
        self.directory = None

        # Generate the window
        self.mainWidget = qtw.QWidget()
        self.mainLayout = qtw.QVBoxLayout(self.mainWidget)
        self.setWindowTitle("Folders to Stacks...")

        # Populate the panel
        self.createDirectoryBrowsingDisplay(self.mainLayout)
        self.mainLayout.addWidget(CHorizontalSeparator())
        self.createStackSelectionDisplay(self.mainLayout)
        self.mainLayout.addWidget(CHorizontalSeparator())
        self.createUserActions(self.mainLayout)

        # Display the panel
        self.mainWidget.setLayout(self.mainLayout)
        self.setCentralWidget(self.mainWidget)
        self.show()
        self.setFixedSize(550, 450)
Esempio n. 20
0
    def generateCentralWidget(self):

        # Define the widget
        self.mainWidget = qtw.QWidget()
        self.mainLayout = qtw.QVBoxLayout(self.mainWidget)

        # Display the widget
        self.imageTabDisplay = mainTabWidget(self)
        self.mainLayout.addWidget(self.imageTabDisplay)

        self.mainLayout.addWidget(CHorizontalSeparator())

        # Add action widget at the bottom
        self.generateButtonWidget(self.mainLayout)

        # Display the widget
        self.mainWidget.setLayout(self.mainLayout)
        self.setCentralWidget(self.mainWidget)
Esempio n. 21
0
    def createImageSettings(self):

        # Generate the widget
        self.imageSettingsWidget = qtw.QWidget()
        self.imageSettingsLayout = qtw.QVBoxLayout(self.imageSettingsWidget)

        # Settings for image preparation
        self.imageSettingsLayout.addWidget( CLabel("Image Preparation:") )

        # Crop the image if recommended
        self.cropImageCheckBox = qtw.QCheckBox("Crop the image")
        self.cropImageCheckBox.setChecked( self.parent.config.crop_image )
        self.imageSettingsLayout.addWidget(self.cropImageCheckBox)

        cropSizeEntry_l, self.cropSizeEntry = CLabelledLineEdit("Crop size (px):", bold=False)
        self.cropSizeEntry.setText( str(self.parent.config.crop_size) )
        self.imageSettingsLayout.addWidget(cropSizeEntry_l)

        # Correct signed bits if recommended
        self.correctSignedBitsCheckBox = qtw.QCheckBox("Correct signed bits")
        self.correctSignedBitsCheckBox.setChecked( self.parent.config.correct_signed )
        self.imageSettingsLayout.addWidget(self.correctSignedBitsCheckBox)

        self.imageSettingsLayout.addWidget( CHorizontalSeparator() )

        # Settings for image correction
        self.imageSettingsLayout.addWidget( CLabel("Image Correction:") )

        # Settings for the background settings
        self.imageSettingsLayout.addWidget( qtw.QLabel("Background correction settings") )

        # Get the correction type
        self.correctionTypeComboBox = qtw.QComboBox()
        self.correctionTypeComboBox.addItem('Division')
        self.correctionTypeComboBox.addItem('Subtraction')
        _index_correction = self.correctionTypeComboBox.findText(self.parent.config.correction_type.capitalize(), qtc.Qt.MatchFixedString)
        if _index_correction >= 0:
             self.correctionTypeComboBox.setCurrentIndex(_index_correction)
        self.imageSettingsLayout.addWidget(self.correctionTypeComboBox)

        # Get the background type
        self.backgroundTypeComboBox = qtw.QComboBox()
        self.backgroundTypeComboBox.addItem('Median')
        self.backgroundTypeComboBox.addItem('Mean')
        _index_background = self.backgroundTypeComboBox.findText(self.parent.config.background_type.capitalize(), qtc.Qt.MatchFixedString)
        if _index_background >= 0:
             self.backgroundTypeComboBox.setCurrentIndex(_index_background)
        self.imageSettingsLayout.addWidget(self.backgroundTypeComboBox)

        # Correct intensity fluctuation
        self.correctFluctuationsCheckBox = qtw.QCheckBox("Correct intensity fluctuations")
        self.correctFluctuationsCheckBox.setChecked( self.parent.config.correct_intensity )
        self.imageSettingsLayout.addWidget(self.correctFluctuationsCheckBox)

        # Correct intensity fluctuation
        self.newTabCheckBox = qtw.QCheckBox("Open corrected stack in a new tab")
        self.newTabCheckBox.setChecked( self.parent.config.correct_newtab )
        self.imageSettingsLayout.addWidget(self.newTabCheckBox)

        # Display the widget
        self.imageSettingsWidget.setLayout(self.imageSettingsLayout)
        return self.imageSettingsWidget