RodTracker.ui.reconstruction¶
TBD
- class ReconstructorUI(ui: QWidget, *args, **kwargs)[source]¶
Bases:
QWidgetA custom
QWidgetto provide access to the reconstruction of 3D particle coordinates.This widget interfaces with the
ParticleDetection.reconstruct_3Dlibrary and provides these functionalities to the GUI, i.e. reconstruction of 3D particle coordinates and tracking of particles over multiple frames.- Parameters
ui (QWidget) – Widget containing the tab that is the GUI for the reconstruction and tracking functionality.
*args (iterable) – Positional arguments for the
QWidgetsuperclass.**kwargs (dict) – Keyword arguments for the
QWidgetsuperclass.
- used_colors¶
Selected colors for reconstruction/tracking/plotting.
By default
[].- Type
List[str]
- start_frame¶
Lower bound of the frame range selected for reconstruction/tracking/plotting. The bound is inclusive.
By default
0.- Type
int
- end_frame¶
Upper bound of the frame range selected for reconstruction/tracking/plotting. The bound is inclusive.
By default
0.- Type
int
Signals
Slots
- _solver_result(result: DataFrame)[source]¶
Hook to handle the result of each reconstruction process.
Updates the count of active reconstruction/tracking processes/threads and resets the UI for further reconstruction/tracking tasks after all have finished. Propagates the results of the finished task.
- Parameters
result (pd.DataFrame) – The
DataFramecontaining the result of the process, usually updated data of one color only but for all frames used during the finished process.
- add_plot(fig: Figure)[source]¶
Add a figure to the display section.
Attempts to add the given
Figureas a new page for display in the UI.- Parameters
fig (Figure) –
Figureto be added to the stacked plots for display in the UI.- Returns
None
- cam_ids: List[str] = ['', '']¶
IDs of the two cameras intended for reconstruction of 3D coordinates.
The IDs are used to identify the 2D data columns during the reconstruction process. If at least one of them is an empty string, the process of reconstruction or tracking will be immediatly aborted, because the there either is not enough data or the data is not identifiable.
Default is
["", ""].- Type
List[str]
- data: DataFrame = None¶
Slice of the main
DataFramethat is used for reconstruction/tracking.Default is
None.- Type
DataFrame
- data_loaded(f_min: int, f_max: int, colors: List[str])[source]¶
Hook to updated the available frame range and colors for reconstruction/tracking.
This function is intended as a slot for the
data_loadedsignal. The range of available frames, as well as the available colors in the loaded dataset is updated and presented to users in the UI.- Parameters
f_min (int) – Lowest frame currently available in the particle position dataset.
f_max (int) – Highest frame currently available in the particle position dataset.
colors (List[str]) – Colors currently available in the particle position dataset.
- Returns
None
- data_update(data: DataFrame)[source]¶
Accepts a new dataset that shall be used for reconstruction/tracking.
Accepts a new dataset and, depending on whether this is the first time data is given here, updates the plots or (re-)enables the button for updating the plots in the UI.
- Parameters
data (pd.DataFrame) – New data that shall be used for plotting, 3D coordinate reconstruction and tracking of particles.
- is_busy¶
Notifies when a background task is started/finished.
- Type
pyqtSignal(bool)
- position_scaling: float = 1.0¶
Scale factor to scale the loaded data for display (is usually kept as
1.0).Default is
1.0.- Type
float
- request_data¶
Request a portion of the main dataset defined by
[0]: a list of frames, and[1]: a list of colors.- Type
pyqtSignal(list, list)
- select_data()[source]¶
Request data defined by the selections in the UI.
Requests a portion of the main data that is defined by the selections of the user in the reconstruction tab, i.e. start/end frame and colors of particles to include.
- Returns
None
- set_calibration(path: str)[source]¶
Attempts to load a new set of stereo camera calibration data.
Attempt to load calibration data from the file given in
pathand activates the Solve button if both, calibration and transformation data, have been loaded. Additionally, the updating of plots is (re-)enabled upon successful loading of the calibration data.- Parameters
path (str) – Path to the stereo camera calibration data that shall be loaded here.
- Returns
None
- set_cam_ids(cam1: str, cam2: str)[source]¶
Setter function for
cam_ids.- Parameters
cam1 (str) – ID for the first camera of the stereo camera setup.
cam2 (str) – ID for the second camera of the stereo camera setup.
- Returns
None
- set_transformation(path: str)[source]¶
Attempts to load a new set transformations to world/experiment coordinates.
Attempts to load transformation matrices fromt the file given in
pathand activates the Solve button if both, calibration and transformation data, have been loaded. Additionally, the updating of plots is (re-)enabled upon successful loading of the transformation data.- Parameters
path (str) – Path to the transformation data that shall be loaded here.
- solve()[source]¶
(Re-)Starts the reconstruction/tracking of particles.
Starts either the reconstruction or tracking of particles, depending on the state of a
QCheckBox. One process/thread for every selected color (used_colors) is started, that will (re-)calculate the 3D values (and particle IDs) for all frames in betweenstart_frameandend_frame.- Returns
None
- property solver¶
Not Implemented.
- switch_plot_page(direction: int)[source]¶
Switch the displayed plot page relative to the currently displayed one.
- Parameters
direction (int) –
Direction of the plot to display next. Its the index relative to the currently displayed plot.
a)
direction = 3-> displays the plot three positions furtherdirection = -1-> displays the previous plotdirection = 0-> stays on the current plot
- update_frames(start: int, end: int)[source]¶
Update the selected frame range for reconstruction/tracking.
- Parameters
start (int) – Lowest selected frame.
end (int) – Highest selected frame.
- update_plots()[source]¶
(Re-)Generate plots for evaluation of the 3D data in the dataset.
Starts a thread that generates the evaluation plots for the data selected by the state of UI, i.e. selected colors (
self.used_colors) and frame range (start_frame,end_frame).- Returns
None
- update_settings(settings: dict) None[source]¶
Catches updates of the settings from a
Settingsclass.Checks for the keys relevant to itself and updates the corresponding attributes. Redraws itself with the new settings in place.
- Parameters
settings (dict) –
- Returns
None
- updated_data¶
Sends an updated slice of the main dataset, that has been (re-)tracked or its 3D coordinates updated.
This signal is emitted once for every color during the reconstruction/tracking process. The
DataFramein the payload is effectively an updated slice of the main dataset and does not contain new rows.- Type
pyqtSignal(DataFrame)
- choose_calibration(line_edit: QLineEdit, destination_func: callable)[source]¶
Let a user select a calibration/transformation file and load it.
Lets a user select a
*.jsonfile that should contain one kind of calibration, i.e. stereo camera calibration or transformtion to world/experiment coordinates. The chosen file is then passed to the given loading function for further processing.- Parameters
line_edit (QLineEdit) – Display object for the desired calibration file.
destination_func (callable) – Loading function for the desired calibration file.
- Returns
None
- init_reconstruction(ui: Ui_MainWindow)[source]¶
Initialize the functionality of reconstructing 3D particle positions.
- Parameters
ui (Ui_MainWindow) – UI object of the main window of the application, i.e. also containing the UI tab/objects for 3D reconstruction tasks.
- Returns
None | ReconstructorUI – Returns
None, if the system requirements for 3D particle position reconstruction are not met. Otherwise theReconstructorUIobject handling particle reconstructions is returned.