SYMBOL INDEX (456 symbols across 22 files) FILE: src/digitalsreeni_image_annotator/annotation_statistics.py class AnnotationStatisticsDialog (line 9) | class AnnotationStatisticsDialog(QDialog): method __init__ (line 10) | def __init__(self, parent=None): method initUI (line 17) | def initUI(self): method show_centered (line 32) | def show_centered(self, parent): method generate_statistics (line 37) | def generate_statistics(self, annotations): method show_interactive_plot (line 98) | def show_interactive_plot(self): method closeEvent (line 104) | def closeEvent(self, event): function show_annotation_statistics (line 109) | def show_annotation_statistics(parent, annotations): FILE: src/digitalsreeni_image_annotator/annotation_utils.py class AnnotationUtils (line 5) | class AnnotationUtils: method update_annotation_list (line 7) | def update_annotation_list(self, image_name=None): method update_slice_list_colors (line 21) | def update_slice_list_colors(self): method update_annotation_list_colors (line 31) | def update_annotation_list_colors(self, class_name=None, color=None): method load_image_annotations (line 40) | def load_image_annotations(self): method save_current_annotations (line 48) | def save_current_annotations(self): method add_annotation_to_list (line 58) | def add_annotation_to_list(self, annotation): FILE: src/digitalsreeni_image_annotator/annotator_window.py class TrainingThread (line 59) | class TrainingThread(QThread): method __init__ (line 63) | def __init__(self, yolo_trainer, epochs, imgsz): method run (line 69) | def run(self): class DimensionDialog (line 76) | class DimensionDialog(QDialog): method __init__ (line 77) | def __init__(self, shape, file_name, parent=None, default_dimensions=N... method get_dimensions (line 109) | def get_dimensions(self): class ImageAnnotator (line 114) | class ImageAnnotator(QMainWindow): method __init__ (line 115) | def __init__(self): method setup_ui (line 196) | def setup_ui(self): method update_window_title (line 215) | def update_window_title(self): method new_project (line 226) | def new_project(self): method show_project_search (line 261) | def show_project_search(self): method open_project (line 267) | def open_project(self): method backup_project_before_open (line 284) | def backup_project_before_open(self, project_file): method restore_project_from_backup (line 296) | def restore_project_from_backup(self): method open_specific_project (line 307) | def open_specific_project(self, project_file): method load_project_data (line 351) | def load_project_data(self, project_data): method handle_missing_images (line 413) | def handle_missing_images(self, missing_images): method remove_missing_images (line 429) | def remove_missing_images(self, missing_images): method prompt_load_missing_images (line 454) | def prompt_load_missing_images(self, missing_images): method load_missing_images (line 469) | def load_missing_images(self, missing_images): method update_image_list (line 504) | def update_image_list(self): method select_class (line 509) | def select_class(self, index): method close_project (line 519) | def close_project(self): method delete_selected_class (line 544) | def delete_selected_class(self): method check_missing_images (line 557) | def check_missing_images(self): method convert_to_serializable (line 563) | def convert_to_serializable(self, obj): method save_project (line 578) | def save_project(self, show_message=True): method save_project_as (line 676) | def save_project_as(self): method auto_save (line 703) | def auto_save(self): method show_project_details (line 720) | def show_project_details(self): method load_multi_slice_image (line 744) | def load_multi_slice_image(self, image_path, dimensions=None, shape=No... method activate_sam_magic_wand (line 792) | def activate_sam_magic_wand(self): method deactivate_sam_magic_wand (line 815) | def deactivate_sam_magic_wand(self): method toggle_sam_assisted (line 830) | def toggle_sam_assisted(self): method toggle_sam_magic_wand (line 843) | def toggle_sam_magic_wand(self): method apply_sam_prediction (line 860) | def apply_sam_prediction(self): method accept_sam_prediction (line 888) | def accept_sam_prediction(self): method setup_slice_list (line 899) | def setup_slice_list(self): method qimage_to_numpy (line 908) | def qimage_to_numpy(self, qimage): method open_images (line 917) | def open_images(self): method convert_to_8bit_rgb (line 930) | def convert_to_8bit_rgb(self, image_array): method add_images_to_list (line 948) | def add_images_to_list(self, file_names): method update_all_images (line 995) | def update_all_images(self, new_image_info): method closeEvent (line 1000) | def closeEvent(self, event): method switch_slice (line 1023) | def switch_slice(self, item): method switch_image (line 1071) | def switch_image(self, item): method adjust_zoom_to_fit (line 1146) | def adjust_zoom_to_fit(self): method activate_current_slice (line 1161) | def activate_current_slice(self): method load_image (line 1177) | def load_image(self, image_path): method load_tiff (line 1188) | def load_tiff(self, image_path, dimensions=None, shape=None, force_dim... method load_czi (line 1225) | def load_czi(self, image_path, dimensions=None, shape=None, force_dime... method load_regular_image (line 1248) | def load_regular_image(self, image_path): method process_multidimensional_image (line 1254) | def process_multidimensional_image(self, image_array, image_path, dime... method create_slices (line 1322) | def create_slices(self, image_array, dimensions, image_path): method add_slice_to_list (line 1397) | def add_slice_to_list(self, slice_name): method normalize_array (line 1423) | def normalize_array(self, array): method adjust_contrast (line 1445) | def adjust_contrast(self, image, low_percentile=1, high_percentile=99): method activate_slice (line 1455) | def activate_slice(self, slice_name): method array_to_qimage (line 1474) | def array_to_qimage(self, array): method update_slice_list (line 1485) | def update_slice_list(self): method clear_slice_list (line 1501) | def clear_slice_list(self): method reset_tool_buttons (line 1506) | def reset_tool_buttons(self): method keyPressEvent (line 1510) | def keyPressEvent(self, event): method has_visible_temp_classes (line 1555) | def has_visible_temp_classes(self): method launch_snake_game (line 1562) | def launch_snake_game(self): method import_annotations (line 1569) | def import_annotations(self): method export_annotations (line 1709) | def export_annotations(self): method save_slices (line 1781) | def save_slices(self, directory): method create_coco_annotation (line 1793) | def create_coco_annotation(self, ann, image_id, annotation_id): method update_all_annotation_lists (line 1810) | def update_all_annotation_lists(self): method update_annotation_list (line 1815) | def update_annotation_list(self, image_name=None): method update_slice_list_colors (line 1836) | def update_slice_list_colors(self): method update_annotation_list_colors (line 1868) | def update_annotation_list_colors(self, class_name=None, color=None): method load_image_annotations (line 1877) | def load_image_annotations(self): method save_current_annotations (line 1890) | def save_current_annotations(self): method setup_class_list (line 1913) | def setup_class_list(self): method setup_tool_buttons (line 1924) | def setup_tool_buttons(self): method setup_annotation_list (line 1980) | def setup_annotation_list(self): method create_menu_bar (line 1989) | def create_menu_bar(self): method change_font_size (line 2096) | def change_font_size(self, size): method setup_sidebar (line 2100) | def setup_sidebar(self): method sort_annotations_by_class (line 2280) | def sort_annotations_by_class(self): method sort_annotations_by_area (line 2295) | def sort_annotations_by_area(self): method update_annotation_list_with_sorted (line 2310) | def update_annotation_list_with_sorted(self, sorted_annotations): method change_sam_model (line 2327) | def change_sam_model(self, model_name): method setup_font_size_selector (line 2348) | def setup_font_size_selector(self): method on_font_size_changed (line 2358) | def on_font_size_changed(self, size): method apply_theme_and_font (line 2364) | def apply_theme_and_font(self): method toggle_dark_mode (line 2385) | def toggle_dark_mode(self): method apply_stylesheet (line 2399) | def apply_stylesheet(self): method update_ui_colors (line 2405) | def update_ui_colors(self): method setup_image_area (line 2411) | def setup_image_area(self): method setup_image_list (line 2440) | def setup_image_list(self): method open_dataset_splitter (line 2461) | def open_dataset_splitter(self): method show_annotation_statistics (line 2466) | def show_annotation_statistics(self): method show_coco_json_combiner (line 2476) | def show_coco_json_combiner(self): method show_stack_to_slices (line 2479) | def show_stack_to_slices(self): method show_image_patcher (line 2483) | def show_image_patcher(self): method show_image_augmenter (line 2486) | def show_image_augmenter(self): method show_slice_registration (line 2489) | def show_slice_registration(self): method show_stack_interpolator (line 2493) | def show_stack_interpolator(self): method show_dicom_converter (line 2497) | def show_dicom_converter(self): method show_help (line 2504) | def show_help(self): method add_images (line 2509) | def add_images(self): method clear_all (line 2517) | def clear_all(self, new_project=False, show_messages=True): method show_warning (line 2600) | def show_warning(self, title, message): method show_info (line 2603) | def show_info(self, title, message): method update_image_info (line 2606) | def update_image_info(self, additional_info=None): method show_question (line 2618) | def show_question(self, title, message): method show_image_context_menu (line 2623) | def show_image_context_menu(self, position): method is_multi_dimensional (line 2645) | def is_multi_dimensional(self, file_name): method predict_single_image (line 2648) | def predict_single_image(self, file_name): method redefine_dimensions (line 2669) | def redefine_dimensions(self, file_name): method remove_image (line 2724) | def remove_image(self): method load_annotations (line 2775) | def load_annotations(self): method clear_highlighted_annotation (line 2878) | def clear_highlighted_annotation(self): method update_highlighted_annotations (line 2882) | def update_highlighted_annotations(self): method renumber_annotations (line 2891) | def renumber_annotations(self): method delete_selected_annotations (line 2899) | def delete_selected_annotations(self): method merge_annotations (line 2941) | def merge_annotations(self): method delete_selected_image (line 3052) | def delete_selected_image(self): method display_image (line 3109) | def display_image(self): method update_ui (line 3128) | def update_ui(self): method add_class (line 3137) | def add_class(self, class_name=None, color=None): method update_class_item_color (line 3206) | def update_class_item_color(self, item, color): method update_class_list (line 3214) | def update_class_list(self): method update_class_selection (line 3248) | def update_class_selection(self): method toggle_class_visibility (line 3257) | def toggle_class_visibility(self, item): method toggle_all_class (line 3265) | def toggle_all_class(self, checked): method change_annotation_class (line 3273) | def change_annotation_class(self): method toggle_tool (line 3334) | def toggle_tool(self): method wheelEvent (line 3385) | def wheelEvent(self, event): method update_ui_for_current_tool (line 3398) | def update_ui_for_current_tool(self): method on_class_selected (line 3422) | def on_class_selected(self, current=None, previous=None): method disable_annotation_tools (line 3441) | def disable_annotation_tools(self): method enable_annotation_tools (line 3447) | def enable_annotation_tools(self): method show_class_context_menu (line 3451) | def show_class_context_menu(self, position): method change_class_color (line 3470) | def change_class_color(self, item): method rename_class (line 3489) | def rename_class(self, item): method delete_class (line 3538) | def delete_class(self, item=None): method finish_polygon (line 3595) | def finish_polygon(self): method highlight_annotation (line 3648) | def highlight_annotation(self, item): method delete_annotation (line 3652) | def delete_annotation(self): method add_annotation_to_list (line 3662) | def add_annotation_to_list(self, annotation): method zoom_in (line 3684) | def zoom_in(self): method zoom_out (line 3688) | def zoom_out(self): method set_zoom (line 3692) | def set_zoom(self, zoom_factor): method zoom_image (line 3697) | def zoom_image(self): method disable_tools (line 3701) | def disable_tools(self): method enable_tools (line 3706) | def enable_tools(self): method finish_rectangle (line 3711) | def finish_rectangle(self): method enter_edit_mode (line 3761) | def enter_edit_mode(self, annotation): method exit_edit_mode (line 3767) | def exit_edit_mode(self): method highlight_annotation_in_list (line 3777) | def highlight_annotation_in_list(self, annotation): method select_annotation_in_list (line 3784) | def select_annotation_in_list(self, annotation): method setup_yolo_menu (line 3793) | def setup_yolo_menu(self): method load_yolo_model (line 3835) | def load_yolo_model(self): method prepare_yolo_dataset (line 3848) | def prepare_yolo_dataset(self): method load_yolo_yaml (line 3863) | def load_yolo_yaml(self): method save_yolo_model (line 3880) | def save_yolo_model(self): method load_prediction_model (line 3897) | def load_prediction_model(self): method show_train_dialog (line 3923) | def show_train_dialog(self): method initialize_yolo_trainer (line 3960) | def initialize_yolo_trainer(self): method start_training (line 3966) | def start_training(self, epochs, imgsz): method training_finished (line 3979) | def training_finished(self, results): method set_confidence_threshold (line 3990) | def set_confidence_threshold(self): method show_predict_dialog (line 4006) | def show_predict_dialog(self): method run_predictions (line 4044) | def run_predictions(self, selected_images): method process_yolo_results (line 4050) | def process_yolo_results(self, results, image_name): method add_temp_classes (line 4142) | def add_temp_classes(self, temp_annotations): method verify_current_class (line 4151) | def verify_current_class(self): method accept_visible_temp_classes (line 4160) | def accept_visible_temp_classes(self): method select_first_primary_class (line 4194) | def select_first_primary_class(self): method reject_visible_temp_classes (line 4202) | def reject_visible_temp_classes(self): method is_class_visible (line 4215) | def is_class_visible(self, class_name): method check_temp_annotations (line 4221) | def check_temp_annotations(self): method remove_all_temp_annotations (line 4237) | def remove_all_temp_annotations(self): FILE: src/digitalsreeni_image_annotator/coco_json_combiner.py class COCOJSONCombinerDialog (line 7) | class COCOJSONCombinerDialog(QDialog): method __init__ (line 8) | def __init__(self, parent=None): method initUI (line 17) | def initUI(self): method select_file (line 38) | def select_file(self, index): method combine_json_files (line 50) | def combine_json_files(self): method show_centered (line 110) | def show_centered(self, parent): function show_coco_json_combiner (line 115) | def show_coco_json_combiner(parent): FILE: src/digitalsreeni_image_annotator/dataset_splitter.py class DatasetSplitterTool (line 11) | class DatasetSplitterTool(QDialog): method __init__ (line 12) | def __init__(self, parent=None): method initUI (line 19) | def initUI(self): method toggle_json_selection (line 102) | def toggle_json_selection(self): method select_input_directory (line 107) | def select_input_directory(self): method select_output_directory (line 110) | def select_output_directory(self): method select_json_file (line 113) | def select_json_file(self): method split_dataset (line 116) | def split_dataset(self): method split_images_only (line 138) | def split_images_only(self): method split_images_and_annotations (line 159) | def split_images_and_annotations(self): method copy_images (line 181) | def copy_images(self, image_list, subset, images_only=False): method create_subset_annotations (line 196) | def create_subset_annotations(self, coco_data, subset_images): method split_coco_format (line 206) | def split_coco_format(self, coco_data, train_images, val_images, test_... method save_coco_annotations (line 223) | def save_coco_annotations(self, data, subset): method split_yolo_format (line 230) | def split_yolo_format(self, coco_data, train_images, val_images, test_... method show_centered (line 296) | def show_centered(self, parent): FILE: src/digitalsreeni_image_annotator/dicom_converter.py class DicomConverter (line 13) | class DicomConverter(QDialog): method __init__ (line 14) | def __init__(self, parent=None): method initUI (line 27) | def initUI(self): method select_input (line 92) | def select_input(self): method select_output (line 112) | def select_output(self): method truncate_path (line 130) | def truncate_path(self, path, max_length=40): method extract_metadata (line 143) | def extract_metadata(self, ds): method apply_window_level (line 167) | def apply_window_level(self, image, ds): method convert_dicom (line 177) | def convert_dicom(self): method show_centered (line 370) | def show_centered(self, parent): function show_dicom_converter (line 376) | def show_dicom_converter(parent): FILE: src/digitalsreeni_image_annotator/export_formats.py function convert_to_coco (line 18) | def convert_to_coco(all_annotations, class_mapping, image_paths, slices,... function export_coco_json (line 29) | def export_coco_json(all_annotations, class_mapping, image_paths, slices... function create_coco_annotation (line 127) | def create_coco_annotation(ann, image_id, annotation_id, class_name, cla... function export_yolo_v4 (line 146) | def export_yolo_v4(all_annotations, class_mapping, image_paths, slices, ... function export_yolo_v5plus (line 236) | def export_yolo_v5plus(all_annotations, class_mapping, image_paths, slic... function export_labeled_images (line 342) | def export_labeled_images(all_annotations, class_mapping, image_paths, s... function export_semantic_labels (line 451) | def export_semantic_labels(all_annotations, class_mapping, image_paths, ... function export_pascal_voc_bbox (line 547) | def export_pascal_voc_bbox(all_annotations, class_mapping, image_paths, ... function export_pascal_voc_both (line 650) | def export_pascal_voc_both(all_annotations, class_mapping, image_paths, ... FILE: src/digitalsreeni_image_annotator/help_window.py class HelpWindow (line 6) | class HelpWindow(QDialog): method __init__ (line 7) | def __init__(self, dark_mode=False, font_size=10): method show_centered (line 27) | def show_centered(self, parent): method apply_font_size (line 32) | def apply_font_size(self): method load_help_content (line 38) | def load_help_content(self): FILE: src/digitalsreeni_image_annotator/image_augmenter.py class ImageAugmenterDialog (line 12) | class ImageAugmenterDialog(QDialog): method __init__ (line 13) | def __init__(self, parent=None): method initUI (line 25) | def initUI(self): method select_input_directory (line 152) | def select_input_directory(self): method select_output_directory (line 157) | def select_output_directory(self): method update_flip_check (line 162) | def update_flip_check(self, state): method select_coco_json (line 168) | def select_coco_json(self): method toggle_elastic_deformation (line 176) | def toggle_elastic_deformation(self, state): method start_augmentation (line 185) | def start_augmentation(self): method apply_random_augmentation (line 281) | def apply_random_augmentation(self, image, include_annotations=False): method rotate_image (line 309) | def rotate_image(self, image): method zoom_image (line 317) | def zoom_image(self, image): method blur_image (line 328) | def blur_image(self, image): method adjust_brightness_contrast (line 333) | def adjust_brightness_contrast(self, image): method sharpen_image (line 339) | def sharpen_image(self, image): method flip_image (line 348) | def flip_image(self, image): method elastic_transform (line 364) | def elastic_transform(self, image): method convert_to_grayscale (line 382) | def convert_to_grayscale(self, image): method apply_histogram_equalization (line 389) | def apply_histogram_equalization(self, image): method augment_annotation (line 426) | def augment_annotation(self, annotation, transform_params, image_shape): method calculate_polygon_area (line 458) | def calculate_polygon_area(self, polygon): method rotate_polygon (line 463) | def rotate_polygon(self, polygon, angle, center, matrix): method scale_polygon (line 470) | def scale_polygon(self, polygon, scale, center, matrix): method flip_polygon (line 477) | def flip_polygon(self, polygon, flip_code, image_shape): method get_bbox_from_polygon (line 490) | def get_bbox_from_polygon(self, polygon): method show_centered (line 499) | def show_centered(self, parent): function show_image_augmenter (line 504) | def show_image_augmenter(parent): FILE: src/digitalsreeni_image_annotator/image_label.py class ImageLabel (line 26) | class ImageLabel(QLabel): method __init__ (line 31) | def __init__(self, parent=None): method set_main_window (line 81) | def set_main_window(self, main_window): method set_dark_mode (line 84) | def set_dark_mode(self, is_dark): method setPixmap (line 88) | def setPixmap(self, pixmap): method detect_bit_depth (line 95) | def detect_bit_depth(self): method update_scaled_pixmap (line 115) | def update_scaled_pixmap(self): method update_offset (line 132) | def update_offset(self): method reset_annotation_state (line 138) | def reset_annotation_state(self): method clear_current_annotation (line 144) | def clear_current_annotation(self): method resizeEvent (line 148) | def resizeEvent(self, event): method start_painting (line 154) | def start_painting(self, pos): method continue_painting (line 160) | def continue_painting(self, pos): method finish_painting (line 167) | def finish_painting(self): method commit_paint_annotation (line 174) | def commit_paint_annotation(self): method discard_paint_annotation (line 194) | def discard_paint_annotation(self): method start_erasing (line 199) | def start_erasing(self, pos): method continue_erasing (line 205) | def continue_erasing(self, pos): method finish_erasing (line 212) | def finish_erasing(self): method commit_eraser_changes (line 218) | def commit_eraser_changes(self): method discard_eraser_changes (line 267) | def discard_eraser_changes(self): method paintEvent (line 272) | def paintEvent(self, event): method draw_temp_annotations (line 311) | def draw_temp_annotations(self, painter): method accept_temp_annotations (line 341) | def accept_temp_annotations(self): method discard_temp_annotations (line 362) | def discard_temp_annotations(self): method draw_temp_paint_mask (line 366) | def draw_temp_paint_mask(self, painter): method draw_temp_eraser_mask (line 383) | def draw_temp_eraser_mask(self, painter): method draw_tool_size_indicator (line 401) | def draw_tool_size_indicator(self, painter): method draw_paint_mask (line 449) | def draw_paint_mask(self, painter): method draw_eraser_mask (line 457) | def draw_eraser_mask(self, painter): method draw_sam_bbox (line 466) | def draw_sam_bbox(self, painter): method clear_temp_sam_prediction (line 475) | def clear_temp_sam_prediction(self): method check_unsaved_changes (line 479) | def check_unsaved_changes(self): method clear (line 500) | def clear(self): method set_class_visibility (line 520) | def set_class_visibility(self, class_name, is_visible): method draw_annotations (line 523) | def draw_annotations(self, painter): method draw_current_rectangle (line 605) | def draw_current_rectangle(self, painter): method get_rectangle_from_points (line 621) | def get_rectangle_from_points(self): method draw_editing_polygon (line 629) | def draw_editing_polygon(self, painter): method calculate_centroid (line 653) | def calculate_centroid(self, points): method set_zoom (line 663) | def set_zoom(self, zoom_factor): method wheelEvent (line 669) | def wheelEvent(self, event: QWheelEvent): method mousePressEvent (line 680) | def mousePressEvent(self, event: QMouseEvent): method mouseMoveEvent (line 711) | def mouseMoveEvent(self, event: QMouseEvent): method mouseReleaseEvent (line 744) | def mouseReleaseEvent(self, event: QMouseEvent): method mouseDoubleClickEvent (line 773) | def mouseDoubleClickEvent(self, event): method get_image_coordinates (line 787) | def get_image_coordinates(self, pos): method keyPressEvent (line 794) | def keyPressEvent(self, event: QKeyEvent): method cancel_current_annotation (line 858) | def cancel_current_annotation(self): method finish_current_annotation (line 867) | def finish_current_annotation(self): method finish_polygon (line 873) | def finish_polygon(self): method start_polygon_edit (line 881) | def start_polygon_edit(self, pos): method handle_editing_click (line 894) | def handle_editing_click(self, pos, event): method handle_editing_move (line 913) | def handle_editing_move(self, pos): method exit_editing_mode (line 926) | def exit_editing_mode(self): method point_in_polygon (line 933) | def point_in_polygon(point, polygon): method point_to_tuple (line 951) | def point_to_tuple(point): method distance (line 958) | def distance(p1, p2): method point_on_line (line 965) | def point_on_line(p, start, end): FILE: src/digitalsreeni_image_annotator/image_patcher.py class DimensionDialog (line 14) | class DimensionDialog(QDialog): method __init__ (line 15) | def __init__(self, shape, file_name, parent=None): method initUI (line 21) | def initUI(self): method get_dimensions (line 45) | def get_dimensions(self): class PatchingThread (line 48) | class PatchingThread(QThread): method __init__ (line 55) | def __init__(self, input_files, output_dir, patch_size, overlap, dimen... method run (line 63) | def run(self): method patch_image (line 74) | def patch_image(self, file_path): method save_patches (line 106) | def save_patches(self, image, base_name, extension): class ImagePatcherTool (line 123) | class ImagePatcherTool(QDialog): method __init__ (line 124) | def __init__(self, parent=None): method initUI (line 132) | def initUI(self): method select_input_files (line 219) | def select_input_files(self): method process_tiff_files (line 227) | def process_tiff_files(self): method check_tiff_dimensions (line 235) | def check_tiff_dimensions(self, file_path): method select_output_directory (line 253) | def select_output_directory(self): method start_patching (line 262) | def start_patching(self): method get_dimensions (line 283) | def get_dimensions(self, shape, file_name): method get_patch_info (line 299) | def get_patch_info(self): method update_patch_info (line 339) | def update_patch_info(self): method update_progress (line 360) | def update_progress(self, value): method show_error (line 363) | def show_error(self, error_message): method patching_finished (line 367) | def patching_finished(self): method show_centered (line 371) | def show_centered(self, parent): function show_image_patcher (line 376) | def show_image_patcher(parent=None): FILE: src/digitalsreeni_image_annotator/import_formats.py function import_coco_json (line 15) | def import_coco_json(file_path, class_mapping): function import_yolo_v4 (line 124) | def import_yolo_v4(yaml_file_path, class_mapping): function import_yolo_v5plus (line 252) | def import_yolo_v5plus(yaml_file_path, class_mapping): function process_import_format (line 371) | def process_import_format(import_format, file_path, class_mapping): FILE: src/digitalsreeni_image_annotator/main.py function main (line 21) | def main(): FILE: src/digitalsreeni_image_annotator/project_details.py class ProjectDetailsDialog (line 8) | class ProjectDetailsDialog(QDialog): method __init__ (line 9) | def __init__(self, parent=None, stats_dialog=None): method setup_ui (line 19) | def setup_ui(self): method get_notes (line 109) | def get_notes(self): method were_changes_made (line 112) | def were_changes_made(self): FILE: src/digitalsreeni_image_annotator/project_search.py class ProjectSearchDialog (line 9) | class ProjectSearchDialog(QDialog): method __init__ (line 10) | def __init__(self, parent=None): method setup_ui (line 19) | def setup_ui(self): method browse_directory (line 64) | def browse_directory(self): method perform_search (line 70) | def perform_search(self): method project_matches (line 99) | def project_matches(self, project_data, query, start_date, end_date): method term_matches (line 115) | def term_matches(self, term, project_data): method evaluate_query (line 135) | def evaluate_query(self, query, project_data): method tokenize_query (line 139) | def tokenize_query(self, query): method evaluate_tokens (line 158) | def evaluate_tokens(self, tokens, project_data): method keyword_matches (line 189) | def keyword_matches(self, keyword, project_data): method open_selected_project (line 212) | def open_selected_project(self, item): function show_project_search (line 217) | def show_project_search(parent): FILE: src/digitalsreeni_image_annotator/sam_utils.py class SAMUtils (line 5) | class SAMUtils: method __init__ (line 6) | def __init__(self): method change_sam_model (line 20) | def change_sam_model(self, model_name): method qimage_to_numpy (line 30) | def qimage_to_numpy(self, qimage): method normalize_16bit_to_8bit (line 78) | def normalize_16bit_to_8bit(self, array): method apply_sam_prediction (line 81) | def apply_sam_prediction(self, image, bbox): method mask_to_polygon (line 110) | def mask_to_polygon(self, mask): FILE: src/digitalsreeni_image_annotator/slice_registration.py class SliceRegistrationTool (line 12) | class SliceRegistrationTool(QDialog): method __init__ (line 13) | def __init__(self, parent=None): method initUI (line 26) | def initUI(self): method on_ref_changed (line 174) | def on_ref_changed(self, text): method on_transform_changed (line 181) | def on_transform_changed(self, text): method select_input (line 189) | def select_input(self): method select_output (line 216) | def select_output(self): method register_slices (line 234) | def register_slices(self): method update_progress (line 374) | def update_progress(self, progress_dialog, current_iteration, end_iter... method load_images (line 383) | def load_images(self): method show_centered (line 432) | def show_centered(self, parent): FILE: src/digitalsreeni_image_annotator/snake_game.py class SnakeGame (line 7) | class SnakeGame(QWidget): method __init__ (line 8) | def __init__(self): method initUI (line 12) | def initUI(self): method center (line 29) | def center(self): method paintEvent (line 35) | def paintEvent(self, event): method keyPressEvent (line 52) | def keyPressEvent(self, event): method update_game (line 66) | def update_game(self): method place_food (line 98) | def place_food(self): method game_over (line 105) | def game_over(self): FILE: src/digitalsreeni_image_annotator/stack_interpolator.py class StackInterpolator (line 11) | class StackInterpolator(QDialog): method __init__ (line 12) | def __init__(self, parent=None): method initUI (line 25) | def initUI(self): method select_input (line 162) | def select_input(self): method select_output (line 189) | def select_output(self): method load_images (line 207) | def load_images(self): method interpolate_stack (line 269) | def interpolate_stack(self): method show_centered (line 503) | def show_centered(self, parent): function show_stack_interpolator (line 511) | def show_stack_interpolator(parent): FILE: src/digitalsreeni_image_annotator/stack_to_slices.py class DimensionDialog (line 11) | class DimensionDialog(QDialog): method __init__ (line 12) | def __init__(self, shape, file_name, parent=None): method initUI (line 18) | def initUI(self, file_name): method get_dimensions (line 43) | def get_dimensions(self): class StackToSlicesDialog (line 47) | class StackToSlicesDialog(QDialog): method __init__ (line 48) | def __init__(self, parent=None): method initUI (line 57) | def initUI(self): method select_file (line 74) | def select_file(self): method process_file (line 81) | def process_file(self): method process_tiff (line 87) | def process_tiff(self): method process_czi (line 93) | def process_czi(self): method get_dimensions (line 99) | def get_dimensions(self, shape): method convert_to_slices (line 110) | def convert_to_slices(self): method save_slices (line 128) | def save_slices(self, image_array, output_dir): method show_centered (line 179) | def show_centered(self, parent): function show_stack_to_slices (line 184) | def show_stack_to_slices(parent): FILE: src/digitalsreeni_image_annotator/utils.py function calculate_area (line 12) | def calculate_area(annotation): function calculate_bbox (line 23) | def calculate_bbox(segmentation): function normalize_image (line 30) | def normalize_image(image_array): FILE: src/digitalsreeni_image_annotator/yolo_trainer.py class TrainingInfoDialog (line 18) | class TrainingInfoDialog(QDialog): method __init__ (line 21) | def __init__(self, parent=None): method update_info (line 41) | def update_info(self, text): method stop_training (line 45) | def stop_training(self): method closeEvent (line 50) | def closeEvent(self, event): class LoadPredictionModelDialog (line 54) | class LoadPredictionModelDialog(QDialog): method __init__ (line 55) | def __init__(self, parent=None): method browse_model (line 89) | def browse_model(self): method browse_yaml (line 95) | def browse_yaml(self): class YOLOTrainer (line 101) | class YOLOTrainer(QObject): method __init__ (line 104) | def __init__(self, project_dir, main_window): method load_model (line 120) | def load_model(self, model_path=None): method prepare_dataset (line 131) | def prepare_dataset(self): method load_yaml (line 156) | def load_yaml(self, yaml_path=None): method on_train_epoch_end (line 185) | def on_train_epoch_end(self, trainer): method train_model (line 200) | def train_model(self, epochs=100, imgsz=640): method verify_dataset_structure (line 254) | def verify_dataset_structure(self): method check_ultralytics_settings (line 287) | def check_ultralytics_settings(self): method stop_training_signal (line 296) | def stop_training_signal(self): method set_progress_callback (line 300) | def set_progress_callback(self, callback): method stop_training_callback (line 304) | def stop_training_callback(self, trainer): method on_epoch_end (line 311) | def on_epoch_end(self, trainer): method save_model (line 337) | def save_model(self): method load_prediction_model (line 346) | def load_prediction_model(self, model_path, yaml_path): method predict (line 372) | def predict(self, input_data): method set_conf_threshold (line 389) | def set_conf_threshold(self, conf):