coralnet-toolbox 0.0.69__tar.gz → 0.0.70__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.
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/PKG-INFO +5 -3
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/README.md +4 -2
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Annotations/QtAnnotation.py +1 -1
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Explorer/QtExplorer.py +64 -9
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/QtAnnotationWindow.py +28 -1
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/QtMainWindow.py +8 -3
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/__init__.py +1 -1
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox.egg-info/PKG-INFO +5 -3
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/pyproject.toml +2 -2
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/.editorconfig +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/.gitallowed +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/.github/ISSUE_TEMPLATE/general_question.md +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/.github/workflows/docs-build.yml +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/.github/workflows/docs.yml +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/.github/workflows/installation.yml +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/.github/workflows/macos.yml +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/.github/workflows/pypi.yml +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/.github/workflows/ubuntu.yml +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/.github/workflows/windows.yml +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/.gitignore +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/LICENSE.txt +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/MANIFEST.in +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Annotations/QtMultiPolygonAnnotation.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Annotations/QtPatchAnnotation.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Annotations/QtPolygonAnnotation.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Annotations/QtRectangleAnnotation.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Annotations/__init__.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/AutoDistill/Models/GroundingDINO.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/AutoDistill/Models/OWLViT.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/AutoDistill/Models/OmDetTurbo.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/AutoDistill/Models/QtBase.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/AutoDistill/Models/__init__.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/AutoDistill/QtBatchInference.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/AutoDistill/QtDeployModel.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/AutoDistill/__init__.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/BreakTime/QtBreakout.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/BreakTime/QtSnake.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/BreakTime/__init__.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Common/QtGraphicsUtility.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Common/QtMarginInput.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Common/QtOverlapInput.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Common/QtTileSizeInput.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Common/QtUpdateImagePaths.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/CoralNet/QtAuthenticate.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/CoralNet/QtDownload.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/CoralNet/__init__.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Explorer/QtDataItem.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Explorer/QtFeatureStore.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Explorer/QtSettingsWidgets.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Explorer/__init__.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/IO/QtExportAnnotations.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/IO/QtExportCoralNetAnnotations.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/IO/QtExportGeoJSONAnnotations.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/IO/QtExportLabels.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/IO/QtExportMaskAnnotations.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/IO/QtExportTagLabAnnotations.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/IO/QtExportTagLabLabels.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/IO/QtExportViscoreAnnotations.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/IO/QtImportAnnotations.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/IO/QtImportCoralNetAnnotations.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/IO/QtImportCoralNetLabels.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/IO/QtImportFrames.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/IO/QtImportImages.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/IO/QtImportLabels.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/IO/QtImportTagLabAnnotations.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/IO/QtImportTagLabLabels.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/IO/QtImportViscoreAnnotations.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/IO/QtOpenProject.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/IO/QtSaveProject.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/IO/__init__.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Icons/1.png +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Icons/2.png +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Icons/3.png +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Icons/4.png +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Icons/5.png +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Icons/__init__.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Icons/add.png +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Icons/all.png +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Icons/apple.png +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Icons/breakout.png +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Icons/coral.png +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Icons/edit.png +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Icons/eye.png +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Icons/hide.png +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Icons/home.png +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Icons/lock.png +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Icons/machine.png +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Icons/magic.png +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Icons/opaque.png +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Icons/parameters.png +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Icons/patch.png +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Icons/polygon.png +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Icons/rabbit.png +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Icons/rectangle.png +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Icons/remove.png +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Icons/rocket.png +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Icons/select.png +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Icons/settings.png +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Icons/snake.png +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Icons/tile.png +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Icons/transparent.png +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Icons/turtle.png +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Icons/unlock.png +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Icons/user.png +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Icons/wizard.png +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Icons/workarea.png +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Icons/www.png +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/BatchInference/QtBase.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/BatchInference/QtClassify.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/BatchInference/QtDetect.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/BatchInference/QtSegment.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/BatchInference/__init__.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/Community/cfg/__init__.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/Community/cfg/classify/convnext_tiny.yaml +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/Community/cfg/classify/efficientnet_b0.yaml +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/Community/cfg/classify/mobilenet_v3_large.yaml +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/Community/cfg/classify/swin_t.yaml +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/Community/cfg/detect/convnext_tiny.yaml +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/Community/cfg/detect/mobilenet_v3_large-fpn.yaml +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/Community/cfg/detect/mobilenet_v3_small-fpn.yaml +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/Community/cfg/detect/resnet101.yaml +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/Community/cfg/detect/swin_t-fpn.yaml +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/Community/cfg/detect/swin_t.yaml +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/Community/cfg/detect/yolo11-p2.yaml +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/Community/cfg/detect/yolo11-p6.yaml +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/Community/cfg/segment/convnext_tiny.yaml +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/Community/cfg/segment/swin_t-fpn.yaml +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/Community/cfg/segment/swin_t.yaml +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/Community/cfg/segment/yolo11-p2.yaml +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/Community/cfg/segment/yolo11-p6.yaml +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/ConfusionMatrix.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/DeployModel/QtBase.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/DeployModel/QtClassify.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/DeployModel/QtDetect.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/DeployModel/QtSegment.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/DeployModel/__init__.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/EvaluateModel/QtBase.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/EvaluateModel/QtClassify.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/EvaluateModel/QtDetect.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/EvaluateModel/QtSegment.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/EvaluateModel/__init__.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/ExportDataset/QtBase.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/ExportDataset/QtClassify.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/ExportDataset/QtDetect.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/ExportDataset/QtSegment.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/ExportDataset/__init__.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/ImportDataset/QtBase.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/ImportDataset/QtDetect.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/ImportDataset/QtSegment.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/ImportDataset/__init__.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/MergeDatasets/QtBase.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/MergeDatasets/QtClassify.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/MergeDatasets/__init__.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/OptimizeModel/QtBase.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/OptimizeModel/__init__.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/TrainModel/QtBase.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/TrainModel/QtClassify.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/TrainModel/QtDetect.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/TrainModel/QtSegment.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/TrainModel/__init__.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/TuneModel/QtBase.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/TuneModel/QtClassify.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/TuneModel/QtDetect.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/TuneModel/QtSegment.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/TuneModel/__init__.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/TuneModel/tuner.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/VideoInference/QtBase.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/VideoInference/QtClassify.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/VideoInference/QtDetect.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/VideoInference/QtInference.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/VideoInference/QtSegment.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/VideoInference/QtVideoWidget.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/VideoInference/YOLO3D/__init__.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/VideoInference/YOLO3D/bbox3d_utils.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/VideoInference/YOLO3D/depth_model.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/VideoInference/YOLO3D/detection_model.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/VideoInference/YOLO3D/load_camera_params.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/VideoInference/YOLO3D/run.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/VideoInference/__init__.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/VideoInference/analytics.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/WeightedDataset.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/MachineLearning/__init__.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/QtConfidenceWindow.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/QtEventFilter.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/QtImageWindow.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/QtLabelWindow.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/QtPatchSampling.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/QtProgressBar.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/QtWorkArea.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Rasters/ImageFilter.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Rasters/QtRaster.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Rasters/RasterManager.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Rasters/RasterTableModel.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Rasters/__init__.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Results/CombineResults.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Results/ConvertResults.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Results/MapResults.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Results/Masks.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Results/ResultsProcessor.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Results/__init__.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/SAM/QtBatchInference.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/SAM/QtDeployGenerator.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/SAM/QtDeployPredictor.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/SAM/__init__.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/SeeAnything/QtBatchInference.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/SeeAnything/QtDeployPredictor.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/SeeAnything/QtTrainModel.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/SeeAnything/__init__.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Tile/QtTileBatchInference.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Tile/QtTileCreation.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Tile/TileDataset/QtBase.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Tile/TileDataset/QtClassify.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Tile/TileDataset/QtDetect.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Tile/TileDataset/QtSegment.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Tile/TileDataset/__init__.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Tile/__init__.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Tools/QtCutSubTool.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Tools/QtMoveSubTool.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Tools/QtPanTool.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Tools/QtPatchTool.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Tools/QtPolygonTool.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Tools/QtRectangleTool.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Tools/QtResizeSubTool.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Tools/QtSAMTool.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Tools/QtSeeAnythingTool.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Tools/QtSelectSubTool.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Tools/QtSelectTool.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Tools/QtSubTool.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Tools/QtTool.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Tools/QtWorkAreaTool.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Tools/QtZoomTool.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Tools/__init__.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/main.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/utilities.py +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox.egg-info/SOURCES.txt +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox.egg-info/dependency_links.txt +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox.egg-info/entry_points.txt +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox.egg-info/requires.txt +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox.egg-info/top_level.txt +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/mkdocs.yml +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/requirements.txt +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/requirements_dev.txt +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/setup.cfg +0 -0
- {coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/uv.lock +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: coralnet-toolbox
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.70
|
4
4
|
Summary: Tools for annotating and developing ML models for benthic imagery
|
5
5
|
Author-email: Jordan Pierce <jordan.pierce@noaa.gov>
|
6
6
|
License: MIT License
|
@@ -94,10 +94,12 @@ coralnet-toolbox
|
|
94
94
|
|
95
95
|
## 📚 Guides
|
96
96
|
|
97
|
-
For further instructions please see the following guides:
|
97
|
+
For further information and instructions, please see the following guides:
|
98
|
+
- [Overview](https://jordan-pierce.github.io/CoralNet-Toolbox/overview)
|
98
99
|
- [Installation](https://jordan-pierce.github.io/CoralNet-Toolbox/installation)
|
99
100
|
- [Usage](https://jordan-pierce.github.io/CoralNet-Toolbox/usage)
|
100
|
-
-
|
101
|
+
- Community Provided:
|
102
|
+
- [Patch-based Image Classifier](https://jordan-pierce.github.io/CoralNet-Toolbox/classify)
|
101
103
|
|
102
104
|
<details open>
|
103
105
|
<summary><h2><b>🎥 Watch the Video Demos</b></h2></summary>
|
@@ -50,10 +50,12 @@ coralnet-toolbox
|
|
50
50
|
|
51
51
|
## 📚 Guides
|
52
52
|
|
53
|
-
For further instructions please see the following guides:
|
53
|
+
For further information and instructions, please see the following guides:
|
54
|
+
- [Overview](https://jordan-pierce.github.io/CoralNet-Toolbox/overview)
|
54
55
|
- [Installation](https://jordan-pierce.github.io/CoralNet-Toolbox/installation)
|
55
56
|
- [Usage](https://jordan-pierce.github.io/CoralNet-Toolbox/usage)
|
56
|
-
-
|
57
|
+
- Community Provided:
|
58
|
+
- [Patch-based Image Classifier](https://jordan-pierce.github.io/CoralNet-Toolbox/classify)
|
57
59
|
|
58
60
|
<details open>
|
59
61
|
<summary><h2><b>🎥 Watch the Video Demos</b></h2></summary>
|
{coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Annotations/QtAnnotation.py
RENAMED
@@ -262,7 +262,7 @@ class Annotation(QObject):
|
|
262
262
|
# [1, 2] - Very small dots with small gaps
|
263
263
|
# [2, 4] - Small dots with larger gaps
|
264
264
|
# [1, 3] - Tiny dots with medium gaps
|
265
|
-
pen = QPen(pen_color,
|
265
|
+
pen = QPen(pen_color, 4) # Width for dotted line
|
266
266
|
pen.setStyle(Qt.CustomDashLine)
|
267
267
|
pen.setDashPattern([1, 2]) # Dotted pattern: 2 pixels on, 3 pixels off
|
268
268
|
pen.setDashOffset(self._animated_line)
|
@@ -346,6 +346,39 @@ class EmbeddingViewer(QWidget):
|
|
346
346
|
|
347
347
|
def mousePressEvent(self, event):
|
348
348
|
"""Handle mouse press for selection (point or rubber band) and panning."""
|
349
|
+
# Ctrl+Right-Click for context menu selection
|
350
|
+
if event.button() == Qt.RightButton and event.modifiers() == Qt.ControlModifier:
|
351
|
+
item_at_pos = self.graphics_view.itemAt(event.pos())
|
352
|
+
if isinstance(item_at_pos, EmbeddingPointItem):
|
353
|
+
# 1. Clear all selections in both viewers
|
354
|
+
self.graphics_scene.clearSelection()
|
355
|
+
item_at_pos.setSelected(True)
|
356
|
+
self.on_selection_changed() # Updates internal state and emits signals
|
357
|
+
|
358
|
+
# 2. Sync annotation viewer selection
|
359
|
+
ann_id = item_at_pos.data_item.annotation.id
|
360
|
+
self.explorer_window.annotation_viewer.render_selection_from_ids({ann_id})
|
361
|
+
|
362
|
+
# 3. Update annotation window (set image, select, center)
|
363
|
+
explorer = self.explorer_window
|
364
|
+
annotation = item_at_pos.data_item.annotation
|
365
|
+
image_path = annotation.image_path
|
366
|
+
|
367
|
+
if hasattr(explorer, 'annotation_window'):
|
368
|
+
if explorer.annotation_window.current_image_path != image_path:
|
369
|
+
if hasattr(explorer.annotation_window, 'set_image'):
|
370
|
+
explorer.annotation_window.set_image(image_path)
|
371
|
+
if hasattr(explorer.annotation_window, 'select_annotation'):
|
372
|
+
explorer.annotation_window.select_annotation(annotation)
|
373
|
+
if hasattr(explorer.annotation_window, 'center_on_annotation'):
|
374
|
+
explorer.annotation_window.center_on_annotation(annotation)
|
375
|
+
|
376
|
+
explorer.update_label_window_selection()
|
377
|
+
explorer.update_button_states()
|
378
|
+
event.accept()
|
379
|
+
return
|
380
|
+
|
381
|
+
# Handle left-click for selection or rubber band
|
349
382
|
if event.button() == Qt.LeftButton and event.modifiers() == Qt.ControlModifier:
|
350
383
|
item_at_pos = self.graphics_view.itemAt(event.pos())
|
351
384
|
if isinstance(item_at_pos, EmbeddingPointItem):
|
@@ -701,6 +734,14 @@ class AnnotationViewer(QScrollArea):
|
|
701
734
|
explorer = self.explorer_window
|
702
735
|
image_path = widget.annotation.image_path
|
703
736
|
annotation_to_select = widget.annotation
|
737
|
+
|
738
|
+
# ctrl+right click to only select this annotation (single selection):
|
739
|
+
self.clear_selection()
|
740
|
+
self.select_widget(widget)
|
741
|
+
changed_ids = [widget.data_item.annotation.id]
|
742
|
+
|
743
|
+
if changed_ids:
|
744
|
+
self.selection_changed.emit(changed_ids)
|
704
745
|
|
705
746
|
if hasattr(explorer, 'annotation_window'):
|
706
747
|
# Check if the image needs to be changed
|
@@ -710,15 +751,17 @@ class AnnotationViewer(QScrollArea):
|
|
710
751
|
|
711
752
|
# Now, select the annotation in the annotation_window
|
712
753
|
if hasattr(explorer.annotation_window, 'select_annotation'):
|
713
|
-
# This method by default unselects other annotations
|
714
754
|
explorer.annotation_window.select_annotation(annotation_to_select)
|
755
|
+
|
756
|
+
# Center the annotation window view on the selected annotation
|
757
|
+
if hasattr(explorer.annotation_window, 'center_on_annotation'):
|
758
|
+
explorer.annotation_window.center_on_annotation(annotation_to_select)
|
715
759
|
|
716
760
|
# Also clear any existing selection in the explorer window itself
|
717
|
-
explorer.
|
718
|
-
explorer.embedding_viewer.render_selection_from_ids(set())
|
761
|
+
explorer.embedding_viewer.render_selection_from_ids({widget.data_item.annotation.id})
|
719
762
|
explorer.update_label_window_selection()
|
720
763
|
explorer.update_button_states()
|
721
|
-
|
764
|
+
|
722
765
|
event.accept()
|
723
766
|
|
724
767
|
@pyqtSlot()
|
@@ -982,6 +1025,8 @@ class AnnotationViewer(QScrollArea):
|
|
982
1025
|
|
983
1026
|
self.recalculate_widget_positions()
|
984
1027
|
self._update_toolbar_state()
|
1028
|
+
# Update the label window with the new annotation count
|
1029
|
+
self.explorer_window.main_window.label_window.update_annotation_count()
|
985
1030
|
|
986
1031
|
def resizeEvent(self, event):
|
987
1032
|
"""On window resize, reflow the annotation widgets."""
|
@@ -1027,11 +1072,17 @@ class AnnotationViewer(QScrollArea):
|
|
1027
1072
|
break
|
1028
1073
|
widget = widget.parent()
|
1029
1074
|
|
1030
|
-
# If click is outside widgets
|
1031
|
-
if not is_on_widget
|
1032
|
-
|
1033
|
-
self.
|
1034
|
-
|
1075
|
+
# If click is outside widgets, clear annotation_window selection
|
1076
|
+
if not is_on_widget:
|
1077
|
+
# Clear annotation selection in the annotation_window as well
|
1078
|
+
if hasattr(self.explorer_window, 'annotation_window') and self.explorer_window.annotation_window:
|
1079
|
+
if hasattr(self.explorer_window.annotation_window, 'unselect_annotations'):
|
1080
|
+
self.explorer_window.annotation_window.unselect_annotations()
|
1081
|
+
# If there is a selection in the viewer, clear it
|
1082
|
+
if self.selected_widgets:
|
1083
|
+
changed_ids = [w.data_item.annotation.id for w in self.selected_widgets]
|
1084
|
+
self.clear_selection()
|
1085
|
+
self.selection_changed.emit(changed_ids)
|
1035
1086
|
return
|
1036
1087
|
|
1037
1088
|
elif event.modifiers() == Qt.ControlModifier:
|
@@ -2488,6 +2539,10 @@ class ExplorerWindow(QMainWindow):
|
|
2488
2539
|
# Reset sort options when filters change
|
2489
2540
|
self.annotation_viewer.active_ordered_ids = []
|
2490
2541
|
self.annotation_viewer.set_confidence_sort_availability(False)
|
2542
|
+
|
2543
|
+
# Update the annotation count in the label window
|
2544
|
+
self.label_window.update_annotation_count()
|
2545
|
+
|
2491
2546
|
finally:
|
2492
2547
|
QApplication.restoreOverrideCursor()
|
2493
2548
|
|
@@ -448,7 +448,7 @@ class AnnotationWindow(QGraphicsView):
|
|
448
448
|
# Center the view on the work area's center
|
449
449
|
self.centerOn(work_area_center)
|
450
450
|
|
451
|
-
def
|
451
|
+
def just_center_on_annotation(self, annotation):
|
452
452
|
"""Center the view on the specified annotation."""
|
453
453
|
# Create graphics item if it doesn't exist
|
454
454
|
if not annotation.graphics_item:
|
@@ -460,6 +460,33 @@ class AnnotationWindow(QGraphicsView):
|
|
460
460
|
|
461
461
|
# Center the view on the annotation's center
|
462
462
|
self.centerOn(annotation_center)
|
463
|
+
|
464
|
+
def center_on_annotation(self, annotation):
|
465
|
+
"""Center and zoom in to focus on the specified annotation."""
|
466
|
+
# Create graphics item if it doesn't exist
|
467
|
+
if not annotation.graphics_item:
|
468
|
+
annotation.create_graphics_item(self.scene)
|
469
|
+
|
470
|
+
# Get the bounding rect of the annotation in scene coordinates
|
471
|
+
annotation_rect = annotation.graphics_item.boundingRect()
|
472
|
+
|
473
|
+
# Add some padding around the annotation (20% on each side)
|
474
|
+
padding_x = annotation_rect.width() * 0.2
|
475
|
+
padding_y = annotation_rect.height() * 0.2
|
476
|
+
padded_rect = annotation_rect.adjusted(-padding_x, -padding_y, padding_x, padding_y)
|
477
|
+
|
478
|
+
# Fit the padded annotation rect in the view
|
479
|
+
self.fitInView(padded_rect, Qt.KeepAspectRatio)
|
480
|
+
|
481
|
+
# Update the zoom factor based on the new view transformation
|
482
|
+
# We can calculate this by comparing the viewport size to the scene rect size
|
483
|
+
view_rect = self.viewport().rect()
|
484
|
+
zoom_x = view_rect.width() / padded_rect.width()
|
485
|
+
zoom_y = view_rect.height() / padded_rect.height()
|
486
|
+
self.zoom_factor = min(zoom_x, zoom_y)
|
487
|
+
|
488
|
+
# Signal that the view has changed
|
489
|
+
self.viewChanged.emit(*self.get_image_dimensions())
|
463
490
|
|
464
491
|
def cycle_annotations(self, direction):
|
465
492
|
"""Cycle through annotations in the specified direction."""
|
@@ -1398,6 +1398,9 @@ class MainWindow(QMainWindow):
|
|
1398
1398
|
|
1399
1399
|
def update_label_transparency(self, value):
|
1400
1400
|
"""Update the label transparency value in LabelWindow, AnnotationWindow and the Slider"""
|
1401
|
+
if self.explorer_window:
|
1402
|
+
return # Do not update transparency if explorer window is open
|
1403
|
+
|
1401
1404
|
if self.all_labels_button.isChecked():
|
1402
1405
|
# Set transparency for all labels in LabelWindow, AnnotationWindow
|
1403
1406
|
self.label_window.set_all_labels_transparency(value)
|
@@ -1677,6 +1680,9 @@ class MainWindow(QMainWindow):
|
|
1677
1680
|
|
1678
1681
|
try:
|
1679
1682
|
self.untoggle_all_tools()
|
1683
|
+
# Set the transparency value ahead of time
|
1684
|
+
self.update_transparency_slider(0)
|
1685
|
+
|
1680
1686
|
# Recreate the explorer window, passing the main window instance
|
1681
1687
|
self.explorer_window = ExplorerWindow(self)
|
1682
1688
|
|
@@ -1688,8 +1694,7 @@ class MainWindow(QMainWindow):
|
|
1688
1694
|
# Disable all main window widgets except select few
|
1689
1695
|
self.set_main_window_enabled_state(
|
1690
1696
|
enable_list=[self.annotation_window,
|
1691
|
-
self.label_window,
|
1692
|
-
self.transparency_widget],
|
1697
|
+
self.label_window],
|
1693
1698
|
disable_list=[self.toolbar,
|
1694
1699
|
self.menu_bar,
|
1695
1700
|
self.image_window,
|
@@ -1708,7 +1713,7 @@ class MainWindow(QMainWindow):
|
|
1708
1713
|
self.explorer_window = None
|
1709
1714
|
# Re-enable everything if there was an error
|
1710
1715
|
self.set_main_window_enabled_state()
|
1711
|
-
|
1716
|
+
|
1712
1717
|
def explorer_closed(self):
|
1713
1718
|
"""Handle the explorer window being closed."""
|
1714
1719
|
if self.explorer_window:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: coralnet-toolbox
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.70
|
4
4
|
Summary: Tools for annotating and developing ML models for benthic imagery
|
5
5
|
Author-email: Jordan Pierce <jordan.pierce@noaa.gov>
|
6
6
|
License: MIT License
|
@@ -94,10 +94,12 @@ coralnet-toolbox
|
|
94
94
|
|
95
95
|
## 📚 Guides
|
96
96
|
|
97
|
-
For further instructions please see the following guides:
|
97
|
+
For further information and instructions, please see the following guides:
|
98
|
+
- [Overview](https://jordan-pierce.github.io/CoralNet-Toolbox/overview)
|
98
99
|
- [Installation](https://jordan-pierce.github.io/CoralNet-Toolbox/installation)
|
99
100
|
- [Usage](https://jordan-pierce.github.io/CoralNet-Toolbox/usage)
|
100
|
-
-
|
101
|
+
- Community Provided:
|
102
|
+
- [Patch-based Image Classifier](https://jordan-pierce.github.io/CoralNet-Toolbox/classify)
|
101
103
|
|
102
104
|
<details open>
|
103
105
|
<summary><h2><b>🎥 Watch the Video Demos</b></h2></summary>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[project]
|
2
2
|
name = "coralnet-toolbox"
|
3
|
-
version = "0.0.
|
3
|
+
version = "0.0.70"
|
4
4
|
|
5
5
|
dynamic = [
|
6
6
|
"dependencies",
|
@@ -43,7 +43,7 @@ universal = true
|
|
43
43
|
|
44
44
|
|
45
45
|
[tool.bumpversion]
|
46
|
-
current_version = "0.0.
|
46
|
+
current_version = "0.0.70"
|
47
47
|
commit = true
|
48
48
|
tag = true
|
49
49
|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/.github/ISSUE_TEMPLATE/feature_request.md
RENAMED
File without changes
|
{coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/.github/ISSUE_TEMPLATE/general_question.md
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Annotations/__init__.py
RENAMED
File without changes
|
File without changes
|
{coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/AutoDistill/Models/OWLViT.py
RENAMED
File without changes
|
File without changes
|
{coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/AutoDistill/Models/QtBase.py
RENAMED
File without changes
|
{coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/AutoDistill/Models/__init__.py
RENAMED
File without changes
|
{coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/AutoDistill/QtBatchInference.py
RENAMED
File without changes
|
{coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/AutoDistill/QtDeployModel.py
RENAMED
File without changes
|
{coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/AutoDistill/__init__.py
RENAMED
File without changes
|
{coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/BreakTime/QtBreakout.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Common/QtGraphicsUtility.py
RENAMED
File without changes
|
{coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Common/QtMarginInput.py
RENAMED
File without changes
|
{coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Common/QtOverlapInput.py
RENAMED
File without changes
|
{coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Common/QtTileSizeInput.py
RENAMED
File without changes
|
{coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Common/QtUpdateImagePaths.py
RENAMED
File without changes
|
{coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/CoralNet/QtAuthenticate.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Explorer/QtFeatureStore.py
RENAMED
File without changes
|
{coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/Explorer/QtSettingsWidgets.py
RENAMED
File without changes
|
File without changes
|
{coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/IO/QtExportAnnotations.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/IO/QtExportMaskAnnotations.py
RENAMED
File without changes
|
{coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/IO/QtExportTagLabAnnotations.py
RENAMED
File without changes
|
{coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/IO/QtExportTagLabLabels.py
RENAMED
File without changes
|
File without changes
|
{coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/IO/QtImportAnnotations.py
RENAMED
File without changes
|
File without changes
|
{coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/IO/QtImportCoralNetLabels.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/IO/QtImportTagLabAnnotations.py
RENAMED
File without changes
|
{coralnet_toolbox-0.0.69 → coralnet_toolbox-0.0.70}/coralnet_toolbox/IO/QtImportTagLabLabels.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|