microeye 2.3.5__tar.gz → 2.3.7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {microeye-2.3.5/src/microeye.egg-info → microeye-2.3.7}/PKG-INFO +29 -17
- {microeye-2.3.5 → microeye-2.3.7}/README.md +28 -16
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/__init__.py +0 -5
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/_version.py +1 -1
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/cams/camera_options.py +2 -3
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/cams/camera_panel.py +37 -21
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/cams/line_profiler.py +1 -2
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/cams/shortcuts.py +2 -4
- microeye-2.3.7/src/microEye/hardware/cams/vimba/__init__.py +1 -0
- microeye-2.3.7/src/microEye/hardware/lasers/__init__.py +1 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/lasers/io_matchbox.py +222 -87
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/lasers/io_single_laser.py +189 -52
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/lasers/laser_relay.py +6 -8
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/mieye/acquisition_manager.py +13 -4
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/mieye/devices_manager.py +22 -7
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/mieye/miEye.py +20 -14
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/misc/reglo.py +1 -1
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/misc/temp.py +1 -1
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/protocols/actions.py +4 -5
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/protocols/actions_items.py +1 -1
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/protocols/designer.py +0 -1
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/protocols/scene_manager.py +0 -1
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/protocols/serialization.py +2 -4
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/pycromanager/core.py +7 -1
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/pycromanager/devices.py +0 -8
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/pycromanager/headless.py +0 -1
- microeye-2.3.7/src/microEye/hardware/stages/__init__.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/stages/elliptec/devicePort.py +1 -2
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/stages/elliptec/devicesView.py +1 -1
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/stages/kinesis/kdc101/enums.py +1 -1
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/stages/kinesis/kdc101/factory.py +2 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/stages/kinesis/kdc101/kdc101.py +1 -2
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/stages/kinesis/kinesis.py +3 -8
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/stages/piezo_concept.py +1 -7
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/stages/stabilizer.py +200 -194
- microeye-2.3.7/src/microEye/icons/__init__.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/launcher.py +1 -4
- microeye-2.3.7/src/microEye/tools/__init__.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/utils/display.py +23 -26
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/utils/metadata.py +6 -1
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/utils/metadata_tree.py +393 -220
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/utils/thread_worker.py +0 -2
- {microeye-2.3.5 → microeye-2.3.7/src/microeye.egg-info}/PKG-INFO +29 -17
- microeye-2.3.5/src/microEye/analysis/__init__.py +0 -1
- microeye-2.3.5/src/microEye/hardware/__init__.py +0 -3
- microeye-2.3.5/src/microEye/hardware/lasers/__init__.py +0 -13
- microeye-2.3.5/src/microEye/hardware/protocols/__init__.py +0 -2
- microeye-2.3.5/src/microEye/hardware/stages/__init__.py +0 -13
- {microeye-2.3.5 → microeye-2.3.7}/LICENSE +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/MANIFEST.in +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/pyproject.toml +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/setup.cfg +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/setup.py +0 -0
- {microeye-2.3.5/src/microEye/analysis/fitting → microeye-2.3.7/src/microEye/analysis}/__init__.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/checklist_dialog.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/cmosMaps.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/filters/__init__.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/filters/base.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/filters/spatial.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/filters/temporal.py +0 -0
- {microeye-2.3.5/src/microEye/analysis/tools → microeye-2.3.7/src/microEye/analysis/fitting}/__init__.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/fitting/fit.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/fitting/nena.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/fitting/phasor_fit.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/fitting/processing.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/fitting/psf/__init__.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/fitting/psf/extract.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/fitting/psf/rubost_mean.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/fitting/psf/spline.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/fitting/psf/stats/__init__.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/fitting/psf/stats/core.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/fitting/psf/stats/curve_fit.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/fitting/psf/stats/io.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/fitting/psf/stats/slope_fit.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/fitting/psf/temp.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/fitting/psf/test.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/fitting/pyfit3Dcspline/CPU/CPUfunctions.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/fitting/pyfit3Dcspline/CPU/CPUmleFit_LM.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/fitting/pyfit3Dcspline/CPU/CPUsplineLib.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/fitting/pyfit3Dcspline/CPU/__init__.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/fitting/pyfit3Dcspline/GPU/GPUfunctions.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/fitting/pyfit3Dcspline/GPU/GPUmleFit_LM_EMCCD.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/fitting/pyfit3Dcspline/GPU/GPUmleFit_LM_sCMOS.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/fitting/pyfit3Dcspline/GPU/GPUsplineLib.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/fitting/pyfit3Dcspline/GPU/__init__.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/fitting/pyfit3Dcspline/__init__.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/fitting/pyfit3Dcspline/constants.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/fitting/pyfit3Dcspline/mainfunctions.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/fitting/results.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/fitting/results_stats.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/fitting/tardis.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/multi_viewer.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/processing/__init__.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/processing/frc.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/rendering/__init__.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/rendering/base.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/rendering/cloud.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/rendering/core.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/rendering/volumetric.py +0 -0
- {microeye-2.3.5/src/microEye/hardware/misc → microeye-2.3.7/src/microEye/analysis/tools}/__init__.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/tools/kymograms.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/tools/roi_selectors.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/utils/__init__.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/utils/coordinates.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/utils/images.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/utils/windows.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/viewer/__init__.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/viewer/image_options_widget.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/viewer/images.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/viewer/layers_widget.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/viewer/localizations.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/viewer/psf.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/analysis/viewer/volume.py +0 -0
- {microeye-2.3.5/src/microEye/hardware/cams/dummy → microeye-2.3.7/src/microEye/hardware}/__init__.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/cams/__init__.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/cams/camera_calibration.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/cams/camera_list.py +0 -0
- {microeye-2.3.5/src/microEye/hardware/cams/linescan → microeye-2.3.7/src/microEye/hardware/cams/dummy}/__init__.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/cams/dummy/dummy_panel.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/cams/jobs.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/cams/linescan/IR_Cam.py +0 -0
- {microeye-2.3.5/src/microEye/hardware/cams/thorlabs → microeye-2.3.7/src/microEye/hardware/cams/linescan}/__init__.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/cams/micam.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/cams/pco/__init__.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/cams/pco/enums.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/cams/pco/pco_cam.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/cams/pco/pco_panel.py +0 -0
- {microeye-2.3.5/src/microEye/hardware/cams/ueye → microeye-2.3.7/src/microEye/hardware/cams/thorlabs}/__init__.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/cams/thorlabs/thorlabs.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/cams/thorlabs/thorlabs_panel.py +0 -0
- {microeye-2.3.5/src/microEye/hardware/cams/vimba → microeye-2.3.7/src/microEye/hardware/cams/ueye}/__init__.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/cams/ueye/ueye_camera.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/cams/ueye/ueye_panel.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/cams/vimba/vimba_cam.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/cams/vimba/vimba_panel.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/device.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/lasers/io_params.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/mieye/__init__.py +0 -0
- {microeye-2.3.5/src/microEye/icons → microeye-2.3.7/src/microEye/hardware/misc}/__init__.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/misc/acquisition_view.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/port_config.py +0 -0
- {microeye-2.3.5/src/microEye/tools → microeye-2.3.7/src/microEye/hardware/protocols}/__init__.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/pycromanager/__init__.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/pycromanager/enums.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/pycromanager/utils.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/pycromanager/widgets/__init__.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/pycromanager/widgets/bridges.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/pycromanager/widgets/headless_manager.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/pycromanager/widgets/headless_options.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/pycromanager/widgets/pycro_panel.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/stages/elliptec/__init__.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/stages/elliptec/baseDevice.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/stages/elliptec/device.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/stages/elliptec/deviceID.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/stages/elliptec/deviceStatus.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/stages/elliptec/ellDevices.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/stages/elliptec/messageUpdater.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/stages/elliptec/motorInfo.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/stages/elliptec/stage.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/stages/elliptec/test.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/stages/kinesis/__init__.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/stages/kinesis/kdc101/__init__.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/stages/stage.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/widgets/__init__.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/widgets/controller.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/widgets/devices.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/widgets/focusWidget.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/widgets/qlist_slider.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/hardware/widgets/scan_acquisition.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/icons/1024.png +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/icons/128.png +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/icons/16.png +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/icons/24.png +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/icons/256.png +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/icons/32.png +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/icons/48.png +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/icons/512.png +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/icons/64.png +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/icons/close.svg +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/icons/mieye.png +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/icons/min.svg +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/icons/viewer.png +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/qt.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/tools/microscopy.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/utils/__init__.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/utils/enum_encoder.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/utils/expandable_groupbox.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/utils/gui_helper.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/utils/hid_utils/__init__.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/utils/hid_utils/controller.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/utils/hid_utils/device.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/utils/hid_utils/enums.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/utils/hid_utils/utils.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/utils/labelled_slider.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/utils/micro_launcher.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/utils/parameter_tree.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/utils/pyscripting.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/utils/retry_exec.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/utils/start_gui.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microEye/utils/uImage.py +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microeye.egg-info/SOURCES.txt +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microeye.egg-info/dependency_links.txt +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microeye.egg-info/entry_points.txt +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microeye.egg-info/requires.txt +0 -0
- {microeye-2.3.5 → microeye-2.3.7}/src/microeye.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: microeye
|
|
3
|
-
Version: 2.3.
|
|
3
|
+
Version: 2.3.7
|
|
4
4
|
Summary: A python toolkit for fluorescence microscopy that features hardware control, data analysis and vizualization for super-resolution single-molecule localization microscopy and single-partical tracking.
|
|
5
5
|
Home-page: https://github.com/samhitech/microEye
|
|
6
6
|
Author: Mohammad Nour Alsamsam
|
|
@@ -95,11 +95,11 @@ This toolkit is compatible with the [hardware](#hardware) used in our microscope
|
|
|
95
95
|

|
|
96
96
|
|
|
97
97
|
```bash
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
98
|
+
__ ____ ____ ___ ____ ____
|
|
99
|
+
/ |/ (_)__________ / __/_ _____ _ __|_ | |_ //_ /
|
|
100
|
+
/ /|_/ / / __/ __/ _ \/ _// // / -_) | |/ / __/_ _/_ <_ / /
|
|
101
|
+
/_/ /_/_/\__/_/ \___/___/\_, /\__/ |___/____(_)____(_)_/
|
|
102
|
+
/___/
|
|
103
103
|
```
|
|
104
104
|
|
|
105
105
|
## Table of Contents
|
|
@@ -121,6 +121,7 @@ This toolkit is compatible with the [hardware](#hardware) used in our microscope
|
|
|
121
121
|
- [Additional Hardware](#additional-hardware)
|
|
122
122
|
- [Pycro-Manager Integration](#pycro-manager-integration)
|
|
123
123
|
- [Features](#features)
|
|
124
|
+
- [Integrated Hardware](#integrated-hardware)
|
|
124
125
|
- [How to Use](#how-to-use)
|
|
125
126
|
- [Authors](#authors)
|
|
126
127
|
- [People Involved](#people-involved)
|
|
@@ -317,25 +318,27 @@ Schematic overview of the miEye instrument:
|
|
|
317
318
|
|
|
318
319
|
### Supported Cameras
|
|
319
320
|
|
|
320
|
-
|
|
|
321
|
-
|
|
|
322
|
-
| IDS uEye UI-3060CP Rev. 2 | IDS industrial-grade CMOS cameras
|
|
323
|
-
|
|
|
324
|
-
| Allied Vision Alvium 1800 | Allied Vision industrial-grade CMOS cameras (U-158m, U-511m)
|
|
321
|
+
| Camera | Description | Link |
|
|
322
|
+
| :-----------------------: | ------------------------------------------------------------------------ | :-----------------------------------------------------------------------------------------------------------: |
|
|
323
|
+
| IDS uEye UI-3060CP Rev. 2 | IDS industrial-grade CMOS cameras | [Product Link](https://en.ids-imaging.com/store/products/cameras/ui-3060cp-rev-2.html) |
|
|
324
|
+
| Thorlabs DCC1545M | DCx camera using UC480 driver | [Product Link](https://www.thorlabs.com/thorProduct.cfm?partNumber=DCC1545M) |
|
|
325
|
+
| Allied Vision Alvium 1800 | Allied Vision industrial-grade CMOS cameras (U-158m, U-511m) | [Product Link](https://www.alliedvision.com/en/products/alvium-configurator/alvium-1800-u/158/#_configurator) |
|
|
326
|
+
| Excelitas PCO sCMOS | Excelitas pco.edge 4.2 LT USB sCMOS Camera | [Product Link](https://www.excelitas.com/product/pcoedge-42-lt-usb-scmos-camera) |
|
|
327
|
+
| Pycro-camera | Access to cameras via Micro-Manager drivers/adapters using Pycro-Manager | - |
|
|
325
328
|
|
|
326
329
|
### Additional Hardware
|
|
327
330
|
|
|
328
331
|
| Hardware | Description | Link |
|
|
329
332
|
| --------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
330
|
-
| Integrated Optics MatchBox | Multi-wavelength Laser Combiner, Single Laser MatchBox | [Link](https://integratedoptics.com/products/wavelength-combiners)
|
|
331
|
-
| Piezo Concept FOC | Nanopositioner for microscope objectives | [
|
|
333
|
+
| Integrated Optics MatchBox | Multi-wavelength Laser Combiner, Single Laser MatchBox | [Products Link](https://integratedoptics.com/products/wavelength-combiners) |
|
|
334
|
+
| Piezo Concept FOC | Nanopositioner for microscope objectives | [Piezo Concept FOC](https://piezoconcept-store.squarespace.com/1-axis/p/foc) |
|
|
332
335
|
| Thorlabs Elliptec ELL6/ELL9/ELL12 | Dual/Four/Six-Position Slider | [ELL6](https://www.thorlabs.com/thorproduct.cfm?partnumber=ELL6), [ELL9](https://www.thorlabs.com/thorproduct.cfm?partnumber=ELL9), [ELL12](https://www.thorlabs.com/thorproduct.cfm?partnumber=ELL12) |
|
|
333
336
|
| Thorlabs Elliptec ELL14 | Rotation Mount: SM1 Threaded | [ELL14](https://www.thorlabs.com/thorproduct.cfm?partnumber=ELL14) |
|
|
334
337
|
| Thorlabs Elliptec ELL20 | Linear Stage: 60 mm Travel | [ELL20](https://www.thorlabs.com/thorproduct.cfm?partnumber=ELL20) |
|
|
335
|
-
| Thorlabs KDC101 | Kinesis Controller for Z825B/[Z925B](https://www.thorlabs.com/thorproduct.cfm?partnumber=Z925B) actuators (Activate USB VCP to access the COM port in device manager) | [
|
|
336
|
-
| Parallax TSL1401-DB (#28317) | Linescan Camera Module | [
|
|
338
|
+
| Thorlabs KDC101 | Kinesis Controller for Z825B/[Z925B](https://www.thorlabs.com/thorproduct.cfm?partnumber=Z925B) actuators (Activate USB VCP to access the COM port in device manager) | [KDC101](https://www.thorlabs.com/thorproduct.cfm?partnumber=KDC101) |
|
|
339
|
+
| Parallax TSL1401-DB (#28317) | Linescan Camera Module | [Parallax TSL1401-DB](https://eu.mouser.com/ProductDetail/Parallax/28317?qs=%2Fha2pyFaduiCRhuOAXMuCmQIeG1Q3R01m6Y1EH%252BmN80%3D) |
|
|
337
340
|
| RelayBox Arduino | For laser control using camera GPIO signals | [RelayBox](https://github.com/samhitech/RelayBox) |
|
|
338
|
-
| miEye OSF Project Parts List | Parts list of miEye OSF Project | [Link](https://osf.io/j2fqy/)
|
|
341
|
+
| miEye OSF Project Parts List | Parts list of miEye OSF Project | [Repo Link](https://osf.io/j2fqy/) |
|
|
339
342
|
|
|
340
343
|
## Pycro-Manager Integration
|
|
341
344
|
|
|
@@ -346,6 +349,15 @@ Integration with Pycro-Manager is now implemented, providing support for managin
|
|
|
346
349
|
- **Headless Manager**: Manage multiple headless Micro-Manager instances (JavaBackend), including starting, stopping, and saving configurations.
|
|
347
350
|
- **Core Instances Manager**: Handle multiple PycroCore instances for device communication and control.
|
|
348
351
|
|
|
352
|
+
### Integrated Hardware
|
|
353
|
+
|
|
354
|
+
The following table lists the hardware devices that are integrated and supported by the `miEye module`:
|
|
355
|
+
|
|
356
|
+
| Device | Description |
|
|
357
|
+
| :----: | ------------------------------------------------------------------------------------------- |
|
|
358
|
+
| Camera | Access Micro-Manager cameras (mainly done for focus stabilization). |
|
|
359
|
+
| ZStage | Access Micro-Manager Z-stage devices for focus stabilization and axial positioning control. |
|
|
360
|
+
|
|
349
361
|
### How to Use
|
|
350
362
|
|
|
351
363
|
1. **Headless Manager**:
|
|
@@ -410,7 +422,7 @@ Special thanks to the following projects and libraries that make this work possi
|
|
|
410
422
|
> Raw data to results: a hands-on introduction and overview of computational analysis for single-molecule localization microscopy", Martens et al., (2022), Frontiers in Bioinformatics. [Paper](https://www.frontiersin.org/articles/10.3389/fbinf.2021.817254)
|
|
411
423
|
|
|
412
424
|
- **TARDIS (Temporal Analysis of Relative Distances)**: We have developed a partial Python implementation of TARDIS without fitting for now. For more information, refer to the [TARDIS software releases](https://github.com/kjamartens/TARDIS-public). The underlying algorithms and scientific details of TARDIS are detailed in the manuscript:
|
|
413
|
-
> Martens et al., “Temporal analysis of relative distances (TARDIS) is a robust, parameter-free alternative to single-particle tracking”, Nature Methods (2024). [
|
|
425
|
+
> Martens et al., “Temporal analysis of relative distances (TARDIS) is a robust, parameter-free alternative to single-particle tracking”, Nature Methods (2024). [Article](https://rdcu.be/dv1sr)
|
|
414
426
|
|
|
415
427
|
**Note**: I'm committed to maintaining an accurate acknowledgment list for our project. However, if I inadvertently miss acknowledging your work, please don't hesitate to reach out to us. I appreciate your understanding, and I'm doing my best to manage all acknowledgments amidst my other responsibilities.
|
|
416
428
|
|
|
@@ -31,11 +31,11 @@ This toolkit is compatible with the [hardware](#hardware) used in our microscope
|
|
|
31
31
|

|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
34
|
+
__ ____ ____ ___ ____ ____
|
|
35
|
+
/ |/ (_)__________ / __/_ _____ _ __|_ | |_ //_ /
|
|
36
|
+
/ /|_/ / / __/ __/ _ \/ _// // / -_) | |/ / __/_ _/_ <_ / /
|
|
37
|
+
/_/ /_/_/\__/_/ \___/___/\_, /\__/ |___/____(_)____(_)_/
|
|
38
|
+
/___/
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
## Table of Contents
|
|
@@ -57,6 +57,7 @@ This toolkit is compatible with the [hardware](#hardware) used in our microscope
|
|
|
57
57
|
- [Additional Hardware](#additional-hardware)
|
|
58
58
|
- [Pycro-Manager Integration](#pycro-manager-integration)
|
|
59
59
|
- [Features](#features)
|
|
60
|
+
- [Integrated Hardware](#integrated-hardware)
|
|
60
61
|
- [How to Use](#how-to-use)
|
|
61
62
|
- [Authors](#authors)
|
|
62
63
|
- [People Involved](#people-involved)
|
|
@@ -253,25 +254,27 @@ Schematic overview of the miEye instrument:
|
|
|
253
254
|
|
|
254
255
|
### Supported Cameras
|
|
255
256
|
|
|
256
|
-
|
|
|
257
|
-
|
|
|
258
|
-
| IDS uEye UI-3060CP Rev. 2 | IDS industrial-grade CMOS cameras
|
|
259
|
-
|
|
|
260
|
-
| Allied Vision Alvium 1800 | Allied Vision industrial-grade CMOS cameras (U-158m, U-511m)
|
|
257
|
+
| Camera | Description | Link |
|
|
258
|
+
| :-----------------------: | ------------------------------------------------------------------------ | :-----------------------------------------------------------------------------------------------------------: |
|
|
259
|
+
| IDS uEye UI-3060CP Rev. 2 | IDS industrial-grade CMOS cameras | [Product Link](https://en.ids-imaging.com/store/products/cameras/ui-3060cp-rev-2.html) |
|
|
260
|
+
| Thorlabs DCC1545M | DCx camera using UC480 driver | [Product Link](https://www.thorlabs.com/thorProduct.cfm?partNumber=DCC1545M) |
|
|
261
|
+
| Allied Vision Alvium 1800 | Allied Vision industrial-grade CMOS cameras (U-158m, U-511m) | [Product Link](https://www.alliedvision.com/en/products/alvium-configurator/alvium-1800-u/158/#_configurator) |
|
|
262
|
+
| Excelitas PCO sCMOS | Excelitas pco.edge 4.2 LT USB sCMOS Camera | [Product Link](https://www.excelitas.com/product/pcoedge-42-lt-usb-scmos-camera) |
|
|
263
|
+
| Pycro-camera | Access to cameras via Micro-Manager drivers/adapters using Pycro-Manager | - |
|
|
261
264
|
|
|
262
265
|
### Additional Hardware
|
|
263
266
|
|
|
264
267
|
| Hardware | Description | Link |
|
|
265
268
|
| --------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
266
|
-
| Integrated Optics MatchBox | Multi-wavelength Laser Combiner, Single Laser MatchBox | [Link](https://integratedoptics.com/products/wavelength-combiners)
|
|
267
|
-
| Piezo Concept FOC | Nanopositioner for microscope objectives | [
|
|
269
|
+
| Integrated Optics MatchBox | Multi-wavelength Laser Combiner, Single Laser MatchBox | [Products Link](https://integratedoptics.com/products/wavelength-combiners) |
|
|
270
|
+
| Piezo Concept FOC | Nanopositioner for microscope objectives | [Piezo Concept FOC](https://piezoconcept-store.squarespace.com/1-axis/p/foc) |
|
|
268
271
|
| Thorlabs Elliptec ELL6/ELL9/ELL12 | Dual/Four/Six-Position Slider | [ELL6](https://www.thorlabs.com/thorproduct.cfm?partnumber=ELL6), [ELL9](https://www.thorlabs.com/thorproduct.cfm?partnumber=ELL9), [ELL12](https://www.thorlabs.com/thorproduct.cfm?partnumber=ELL12) |
|
|
269
272
|
| Thorlabs Elliptec ELL14 | Rotation Mount: SM1 Threaded | [ELL14](https://www.thorlabs.com/thorproduct.cfm?partnumber=ELL14) |
|
|
270
273
|
| Thorlabs Elliptec ELL20 | Linear Stage: 60 mm Travel | [ELL20](https://www.thorlabs.com/thorproduct.cfm?partnumber=ELL20) |
|
|
271
|
-
| Thorlabs KDC101 | Kinesis Controller for Z825B/[Z925B](https://www.thorlabs.com/thorproduct.cfm?partnumber=Z925B) actuators (Activate USB VCP to access the COM port in device manager) | [
|
|
272
|
-
| Parallax TSL1401-DB (#28317) | Linescan Camera Module | [
|
|
274
|
+
| Thorlabs KDC101 | Kinesis Controller for Z825B/[Z925B](https://www.thorlabs.com/thorproduct.cfm?partnumber=Z925B) actuators (Activate USB VCP to access the COM port in device manager) | [KDC101](https://www.thorlabs.com/thorproduct.cfm?partnumber=KDC101) |
|
|
275
|
+
| Parallax TSL1401-DB (#28317) | Linescan Camera Module | [Parallax TSL1401-DB](https://eu.mouser.com/ProductDetail/Parallax/28317?qs=%2Fha2pyFaduiCRhuOAXMuCmQIeG1Q3R01m6Y1EH%252BmN80%3D) |
|
|
273
276
|
| RelayBox Arduino | For laser control using camera GPIO signals | [RelayBox](https://github.com/samhitech/RelayBox) |
|
|
274
|
-
| miEye OSF Project Parts List | Parts list of miEye OSF Project | [Link](https://osf.io/j2fqy/)
|
|
277
|
+
| miEye OSF Project Parts List | Parts list of miEye OSF Project | [Repo Link](https://osf.io/j2fqy/) |
|
|
275
278
|
|
|
276
279
|
## Pycro-Manager Integration
|
|
277
280
|
|
|
@@ -282,6 +285,15 @@ Integration with Pycro-Manager is now implemented, providing support for managin
|
|
|
282
285
|
- **Headless Manager**: Manage multiple headless Micro-Manager instances (JavaBackend), including starting, stopping, and saving configurations.
|
|
283
286
|
- **Core Instances Manager**: Handle multiple PycroCore instances for device communication and control.
|
|
284
287
|
|
|
288
|
+
### Integrated Hardware
|
|
289
|
+
|
|
290
|
+
The following table lists the hardware devices that are integrated and supported by the `miEye module`:
|
|
291
|
+
|
|
292
|
+
| Device | Description |
|
|
293
|
+
| :----: | ------------------------------------------------------------------------------------------- |
|
|
294
|
+
| Camera | Access Micro-Manager cameras (mainly done for focus stabilization). |
|
|
295
|
+
| ZStage | Access Micro-Manager Z-stage devices for focus stabilization and axial positioning control. |
|
|
296
|
+
|
|
285
297
|
### How to Use
|
|
286
298
|
|
|
287
299
|
1. **Headless Manager**:
|
|
@@ -346,7 +358,7 @@ Special thanks to the following projects and libraries that make this work possi
|
|
|
346
358
|
> Raw data to results: a hands-on introduction and overview of computational analysis for single-molecule localization microscopy", Martens et al., (2022), Frontiers in Bioinformatics. [Paper](https://www.frontiersin.org/articles/10.3389/fbinf.2021.817254)
|
|
347
359
|
|
|
348
360
|
- **TARDIS (Temporal Analysis of Relative Distances)**: We have developed a partial Python implementation of TARDIS without fitting for now. For more information, refer to the [TARDIS software releases](https://github.com/kjamartens/TARDIS-public). The underlying algorithms and scientific details of TARDIS are detailed in the manuscript:
|
|
349
|
-
> Martens et al., “Temporal analysis of relative distances (TARDIS) is a robust, parameter-free alternative to single-particle tracking”, Nature Methods (2024). [
|
|
361
|
+
> Martens et al., “Temporal analysis of relative distances (TARDIS) is a robust, parameter-free alternative to single-particle tracking”, Nature Methods (2024). [Article](https://rdcu.be/dv1sr)
|
|
350
362
|
|
|
351
363
|
**Note**: I'm committed to maintaining an accurate acknowledgment list for our project. However, if I inadvertently miss acknowledging your work, please don't hesitate to reach out to us. I appreciate your understanding, and I'm doing my best to manage all acknowledgments amidst my other responsibilities.
|
|
352
364
|
|
|
@@ -40,8 +40,3 @@ def getArgs():
|
|
|
40
40
|
|
|
41
41
|
|
|
42
42
|
ARGS = getArgs()
|
|
43
|
-
|
|
44
|
-
import microEye.analysis.fitting.pyfit3Dcspline as pyfit3Dcspline # noqa: E402
|
|
45
|
-
from microEye.analysis import multi_viewer # noqa: E402
|
|
46
|
-
from microEye.hardware import miEye_module # noqa: E402
|
|
47
|
-
from microEye.qt import * # noqa: I001, E402
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
version_info = (2, 3,
|
|
1
|
+
version_info = (2, 3, 7)
|
|
2
2
|
__version__ = '.'.join(map(str, version_info))
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import os
|
|
2
2
|
import sys
|
|
3
3
|
from enum import Enum
|
|
4
|
-
from typing import
|
|
4
|
+
from typing import Optional
|
|
5
5
|
|
|
6
6
|
from pyqtgraph.parametertree import Parameter
|
|
7
|
-
from pyqtgraph.parametertree.parameterTypes import GroupParameter
|
|
8
7
|
|
|
9
8
|
from microEye.qt import QApplication, QtWidgets, Signal
|
|
10
9
|
from microEye.utils.parameter_tree import Tree
|
|
@@ -729,7 +728,7 @@ class CameraOptions(Tree):
|
|
|
729
728
|
str
|
|
730
729
|
The selected dual view colors.
|
|
731
730
|
'''
|
|
732
|
-
# get the selected dual view colors from the parameter tree e.g. 'RG', 'GB', etc
|
|
731
|
+
# get the selected dual view colors from the parameter tree e.g. 'RG', 'GB', etc
|
|
733
732
|
scheme = self.get_param_value(CamParams.DUAL_VIEW_COLORS)
|
|
734
733
|
|
|
735
734
|
indices = {'R': 0, 'G': 1, 'B': 2}
|
|
@@ -1,16 +1,11 @@
|
|
|
1
|
-
import math
|
|
2
1
|
import os
|
|
3
2
|
import re
|
|
4
3
|
import threading
|
|
5
|
-
import time
|
|
6
4
|
import traceback
|
|
7
|
-
from functools import lru_cache
|
|
8
5
|
from queue import Queue
|
|
9
|
-
from typing import
|
|
6
|
+
from typing import Union
|
|
10
7
|
|
|
11
|
-
import cv2
|
|
12
8
|
import numpy as np
|
|
13
|
-
import pyqtgraph as pg
|
|
14
9
|
|
|
15
10
|
from microEye.analysis.tools.roi_selectors import (
|
|
16
11
|
MultiRectangularROISelector,
|
|
@@ -25,8 +20,7 @@ from microEye.hardware.cams.shortcuts import (
|
|
|
25
20
|
CameraShortcutsWidget,
|
|
26
21
|
)
|
|
27
22
|
from microEye.qt import QDateTime, Qt, QtCore, QtWidgets, Signal, Slot
|
|
28
|
-
from microEye.utils.display import DisplayManager
|
|
29
|
-
from microEye.utils.expandable_groupbox import ExpandableGroupBox
|
|
23
|
+
from microEye.utils.display import DisplayManager, fast_autolevels_opencv
|
|
30
24
|
from microEye.utils.gui_helper import get_scaling_factor
|
|
31
25
|
from microEye.utils.metadata_tree import MetadataEditorTree, MetaParams
|
|
32
26
|
from microEye.utils.thread_worker import QThreadWorker
|
|
@@ -524,6 +518,21 @@ class Camera_Panel(QtWidgets.QGroupBox):
|
|
|
524
518
|
except Exception:
|
|
525
519
|
traceback.print_exc()
|
|
526
520
|
|
|
521
|
+
def get_ROI(self) -> tuple[int, int, int, int]:
|
|
522
|
+
'''Gets the ROI for the selected camera.
|
|
523
|
+
|
|
524
|
+
Returns
|
|
525
|
+
-------
|
|
526
|
+
tuple[int, int, int, int]
|
|
527
|
+
The ROI as (x, y, width, height).
|
|
528
|
+
'''
|
|
529
|
+
x = self.camera_options.get_param_value(CamParams.ROI_X)
|
|
530
|
+
y = self.camera_options.get_param_value(CamParams.ROI_Y)
|
|
531
|
+
w = self.camera_options.get_param_value(CamParams.ROI_WIDTH)
|
|
532
|
+
h = self.camera_options.get_param_value(CamParams.ROI_HEIGHT)
|
|
533
|
+
|
|
534
|
+
return x, y, w, h
|
|
535
|
+
|
|
527
536
|
def roi_shortcuts(self, fov: float, single: bool, software: bool):
|
|
528
537
|
'''
|
|
529
538
|
Sets the ROI for the camera using the selected FOV and mode.
|
|
@@ -560,6 +569,19 @@ class Camera_Panel(QtWidgets.QGroupBox):
|
|
|
560
569
|
y = int((height - fov // pixel_size) / 2)
|
|
561
570
|
h = int(fov // pixel_size)
|
|
562
571
|
|
|
572
|
+
if not software:
|
|
573
|
+
self.reset_ROI()
|
|
574
|
+
QtCore.QThread.msleep(250) # wait for the camera to update the ROI
|
|
575
|
+
|
|
576
|
+
self.camera_options.set_param_value(CamParams.ROI_X, x)
|
|
577
|
+
self.camera_options.set_param_value(CamParams.ROI_Y, y)
|
|
578
|
+
self.camera_options.set_param_value(CamParams.ROI_WIDTH, w)
|
|
579
|
+
self.camera_options.set_param_value(CamParams.ROI_HEIGHT, h)
|
|
580
|
+
|
|
581
|
+
self.set_ROI()
|
|
582
|
+
|
|
583
|
+
x, y, w, h = self.get_ROI()
|
|
584
|
+
|
|
563
585
|
rois = [
|
|
564
586
|
(x if software else 0, y if software else 0, h, h),
|
|
565
587
|
(h + 3 * x if software else h + 2 * x, y if software else 0, h, h),
|
|
@@ -576,18 +598,7 @@ class Camera_Panel(QtWidgets.QGroupBox):
|
|
|
576
598
|
'value': f'{roi[0]}, {roi[1]}, {roi[2]}, {roi[3]}',
|
|
577
599
|
},
|
|
578
600
|
)
|
|
579
|
-
|
|
580
|
-
if not software:
|
|
581
|
-
self.reset_ROI()
|
|
582
|
-
QtCore.QThread.msleep(250) # wait for the camera to update the ROI
|
|
583
|
-
|
|
584
|
-
self.camera_options.set_param_value(CamParams.ROI_X, x)
|
|
585
|
-
self.camera_options.set_param_value(CamParams.ROI_Y, y)
|
|
586
|
-
self.camera_options.set_param_value(CamParams.ROI_WIDTH, w)
|
|
587
|
-
self.camera_options.set_param_value(CamParams.ROI_HEIGHT, h)
|
|
588
|
-
|
|
589
|
-
self.set_ROI()
|
|
590
|
-
elif single:
|
|
601
|
+
elif single and software:
|
|
591
602
|
self.camera_options.add_param_child(
|
|
592
603
|
CamParams.EXPORTED_ROIS,
|
|
593
604
|
{
|
|
@@ -848,6 +859,10 @@ def display_frame(
|
|
|
848
859
|
if isinstance(frame, uImage):
|
|
849
860
|
frame = frame._image
|
|
850
861
|
|
|
862
|
+
thresholds, hist, cdf = fast_autolevels_opencv(
|
|
863
|
+
frame, levels=camp.camera_options.isAutostretch
|
|
864
|
+
)
|
|
865
|
+
|
|
851
866
|
# cv2.imshow(name, frame)
|
|
852
867
|
DisplayManager.instance().image_update_signal.emit(
|
|
853
868
|
name,
|
|
@@ -862,6 +877,8 @@ def display_frame(
|
|
|
862
877
|
'isROIsView': camp.camera_options.isROIsView,
|
|
863
878
|
'isOverlaidView': camp.camera_options.isOverlaidView,
|
|
864
879
|
'plot_type': camp.camera_options.isHistogramPlot,
|
|
880
|
+
'threshold': thresholds,
|
|
881
|
+
'plot': hist if camp.camera_options.isHistogramPlot else cdf,
|
|
865
882
|
},
|
|
866
883
|
)
|
|
867
884
|
|
|
@@ -890,7 +907,6 @@ def update_histogram_and_display(params: AcquisitionJob, camp: Camera_Panel):
|
|
|
890
907
|
display_frame(camp, params.name, params.frame)
|
|
891
908
|
|
|
892
909
|
elif camp.camera_options.isROIsView:
|
|
893
|
-
|
|
894
910
|
overlaid = len(params.rois) == 2 and camp.camera_options.isOverlaidView
|
|
895
911
|
flipped = camp.camera_options.isFlippedROIsView
|
|
896
912
|
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import numpy as np
|
|
2
2
|
import pyqtgraph as pg
|
|
3
3
|
import qdarkstyle
|
|
4
|
-
from pyqtgraph.multiprocess import proxy
|
|
5
4
|
|
|
6
5
|
from microEye.analysis.tools.kymograms import get_kymogram_row
|
|
7
|
-
from microEye.qt import QApplication, QtWidgets, Signal
|
|
6
|
+
from microEye.qt import QApplication, QtWidgets, Signal
|
|
8
7
|
|
|
9
8
|
|
|
10
9
|
class LineProfiler(QtWidgets.QWidget):
|
|
@@ -2,7 +2,7 @@ from typing import Union
|
|
|
2
2
|
|
|
3
3
|
from microEye.hardware.cams.camera_options import CamParams
|
|
4
4
|
from microEye.hardware.cams.micam import miCamera
|
|
5
|
-
from microEye.qt import
|
|
5
|
+
from microEye.qt import Qt, QtCore, QtGui, QtWidgets, Signal
|
|
6
6
|
from microEye.utils.gui_helper import debounceSlot
|
|
7
7
|
|
|
8
8
|
DEFAULT_EXPOSURE_SHORTCUTS = [
|
|
@@ -399,9 +399,7 @@ class CameraShortcutsWidget(QtWidgets.QWidget):
|
|
|
399
399
|
# Close all windows
|
|
400
400
|
self.close_windows_button = QtWidgets.QPushButton('Close All Windows')
|
|
401
401
|
self.close_windows_button.setToolTip('Close all windows')
|
|
402
|
-
self.close_windows_button.clicked.connect(
|
|
403
|
-
lambda: self.closeAllWindows.emit()
|
|
404
|
-
)
|
|
402
|
+
self.close_windows_button.clicked.connect(lambda: self.closeAllWindows.emit())
|
|
405
403
|
self.display_windows_btns.addWidget(self.close_windows_button)
|
|
406
404
|
|
|
407
405
|
def _display_mode_changed(self, index):
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|