magscope.ui.auto_bead_selection_dialog

Contents

magscope.ui.auto_bead_selection_dialog#

Classes#

Module Contents#

class magscope.ui.auto_bead_selection_dialog._AutoBeadSearchProcessBackend[source]#
_NO_ACTIVE_REQUEST_ID = -1[source]#
_context = None[source]#
_request_queue[source]#
_result_queue[source]#
_active_request_id[source]#
_process[source]#
poll_messages() list[tuple][source]#
shutdown() None[source]#
class magscope.ui.auto_bead_selection_dialog.AutoBeadSelectionDialog(*, parent, image: numpy.ndarray, roi_size: int, existing_rois: dict[int, tuple[int, int, int, int]], display_scale: int)[source]#

Bases: PyQt6.QtWidgets.QDialog

selectionAccepted[source]#
SLIDER_STEPS = 1000[source]#
_image[source]#
_roi_size[source]#
_existing_rois[source]#
_display_scale[source]#
_seed_roi: tuple[int, int, int, int] | None = None[source]#
_candidates: list[magscope.auto_bead_selection.AutoBeadCandidate] = [][source]#
_visible_candidates: list[magscope.auto_bead_selection.AutoBeadCandidate] = [][source]#
_candidate_min_score = 0.0[source]#
_candidate_max_score = 1.0[source]#
_score_map: numpy.ndarray | None = None[source]#
_next_search_request_id = 0[source]#
_active_search_request_id: int | None = None[source]#
_search_in_progress = False[source]#
_search_backend: _AutoBeadSearchProcessBackend | None = None[source]#
_search_poll_timer[source]#
step_1_card[source]#
step_1_title_label[source]#
step_1_body_label[source]#
step_2_card[source]#
step_2_title_label[source]#
step_2_body_label[source]#
video_viewer[source]#
threshold_slider[source]#
threshold_value_label[source]#
search_progress_label[source]#
search_progress_bar[source]#
search_cancel_button[source]#
status_label[source]#
close_button[source]#
accept_button[source]#
_create_search_backend() _AutoBeadSearchProcessBackend[source]#
_create_instruction_card(name: str, title: str, body: str) PyQt6.QtWidgets.QFrame[source]#
property seed_roi: tuple[int, int, int, int] | None[source]#
property visible_candidates: list[magscope.auto_bead_selection.AutoBeadCandidate][source]#
_image_to_pixmap() PyQt6.QtGui.QPixmap[source]#
_accept_selection() None[source]#
_on_scene_clicked(pos: PyQt6.QtCore.QPoint, button) None[source]#
_set_seed_roi(seed_roi: tuple[int, int, int, int]) None[source]#
_reset_search_results() None[source]#
_clear_seed_and_results() None[source]#
_set_search_ui_state(in_progress: bool) None[source]#
_poll_search_backend() None[source]#
_on_search_progress_changed(completed_steps: int, total_steps: int) None[source]#
_on_search_canceled(request_id: int) None[source]#
_on_search_finished(request_id: int, candidate_payload: list[tuple[tuple[int, int, int, int], float]]) None[source]#
_on_search_failed(request_id: int, message: str) None[source]#
_shutdown_search_backend() None[source]#
_configure_threshold_slider() None[source]#
_score_to_slider_value(score: float) int[source]#
_slider_value_to_score(slider_value: int) float[source]#
_refresh_visible_candidates() None[source]#
_set_instruction_cards_state(*, has_seed: bool, has_candidates: bool) None[source]#
_apply_instruction_card_style(card: PyQt6.QtWidgets.QFrame, *, active: bool) None[source]#
_update_overlay() None[source]#
reject() None[source]#
accept() None[source]#
force_close() None[source]#
closeEvent(event) None[source]#