coralnet-toolbox 0.0.66__py2.py3-none-any.whl → 0.0.67__py2.py3-none-any.whl

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.
Files changed (31) hide show
  1. coralnet_toolbox/Annotations/QtMultiPolygonAnnotation.py +1 -1
  2. coralnet_toolbox/Annotations/QtPatchAnnotation.py +1 -1
  3. coralnet_toolbox/Annotations/QtPolygonAnnotation.py +1 -1
  4. coralnet_toolbox/Annotations/QtRectangleAnnotation.py +1 -1
  5. coralnet_toolbox/AutoDistill/QtDeployModel.py +4 -0
  6. coralnet_toolbox/Explorer/QtAnnotationDataItem.py +97 -0
  7. coralnet_toolbox/Explorer/QtAnnotationImageWidget.py +183 -0
  8. coralnet_toolbox/Explorer/QtEmbeddingPointItem.py +30 -0
  9. coralnet_toolbox/Explorer/QtExplorer.py +2067 -0
  10. coralnet_toolbox/Explorer/QtSettingsWidgets.py +490 -0
  11. coralnet_toolbox/Explorer/__init__.py +7 -0
  12. coralnet_toolbox/IO/QtImportViscoreAnnotations.py +2 -4
  13. coralnet_toolbox/IO/QtOpenProject.py +2 -1
  14. coralnet_toolbox/Icons/magic.png +0 -0
  15. coralnet_toolbox/MachineLearning/DeployModel/QtDetect.py +4 -0
  16. coralnet_toolbox/MachineLearning/DeployModel/QtSegment.py +4 -0
  17. coralnet_toolbox/MachineLearning/TrainModel/QtClassify.py +1 -1
  18. coralnet_toolbox/QtConfidenceWindow.py +2 -23
  19. coralnet_toolbox/QtEventFilter.py +2 -2
  20. coralnet_toolbox/QtLabelWindow.py +23 -8
  21. coralnet_toolbox/QtMainWindow.py +81 -2
  22. coralnet_toolbox/QtProgressBar.py +12 -0
  23. coralnet_toolbox/SAM/QtDeployGenerator.py +4 -0
  24. coralnet_toolbox/__init__.py +1 -1
  25. coralnet_toolbox/utilities.py +24 -0
  26. {coralnet_toolbox-0.0.66.dist-info → coralnet_toolbox-0.0.67.dist-info}/METADATA +2 -1
  27. {coralnet_toolbox-0.0.66.dist-info → coralnet_toolbox-0.0.67.dist-info}/RECORD +31 -24
  28. {coralnet_toolbox-0.0.66.dist-info → coralnet_toolbox-0.0.67.dist-info}/WHEEL +0 -0
  29. {coralnet_toolbox-0.0.66.dist-info → coralnet_toolbox-0.0.67.dist-info}/entry_points.txt +0 -0
  30. {coralnet_toolbox-0.0.66.dist-info → coralnet_toolbox-0.0.67.dist-info}/licenses/LICENSE.txt +0 -0
  31. {coralnet_toolbox-0.0.66.dist-info → coralnet_toolbox-0.0.67.dist-info}/top_level.txt +0 -0
@@ -22,6 +22,8 @@ from coralnet_toolbox.QtConfidenceWindow import ConfidenceWindow
22
22
  from coralnet_toolbox.QtImageWindow import ImageWindow
23
23
  from coralnet_toolbox.QtLabelWindow import LabelWindow
24
24
 
25
+ from coralnet_toolbox.Explorer import ExplorerWindow
26
+
25
27
  from coralnet_toolbox.QtPatchSampling import PatchSamplingDialog
26
28
 
27
29
  from coralnet_toolbox.Tile import (
@@ -185,6 +187,8 @@ class MainWindow(QMainWindow):
185
187
  self.image_window = ImageWindow(self)
186
188
  self.label_window = LabelWindow(self)
187
189
  self.confidence_window = ConfidenceWindow(self)
190
+
191
+ self.explorer_window = None # Initialized in open_explorer_window
188
192
 
189
193
  # TODO update IO classes to have dialogs
190
194
  # Create dialogs (I/O)
@@ -438,11 +442,18 @@ class MainWindow(QMainWindow):
438
442
  self.save_project_action.triggered.connect(self.open_save_project_dialog)
439
443
  self.file_menu.addAction(self.save_project_action)
440
444
 
445
+ # Explorer menu
446
+ self.explorer_menu = self.menu_bar.addMenu("Explorer")
447
+ # Open Explorer
448
+ self.open_explorer_action = QAction("Open Explorer", self)
449
+ self.open_explorer_action.triggered.connect(self.open_explorer_window)
450
+ self.explorer_menu.addAction(self.open_explorer_action)
451
+
441
452
  # Sampling Annotations menu
442
453
  self.annotation_sampling_action = QAction("Sample", self)
443
454
  self.annotation_sampling_action.triggered.connect(self.open_patch_annotation_sampling_dialog)
444
455
  self.menu_bar.addAction(self.annotation_sampling_action)
445
-
456
+
446
457
  # Tile menu
447
458
  self.tile_menu = self.menu_bar.addMenu("Tile")
448
459
 
@@ -471,6 +482,7 @@ class MainWindow(QMainWindow):
471
482
 
472
483
  # CoralNet menu
473
484
  self.coralnet_menu = self.menu_bar.addMenu("CoralNet")
485
+
474
486
  # CoralNet Authenticate
475
487
  self.coralnet_authenticate_action = QAction("Authenticate", self)
476
488
  self.coralnet_authenticate_action.triggered.connect(self.open_coralnet_authenticate_dialog)
@@ -952,6 +964,15 @@ class MainWindow(QMainWindow):
952
964
  super().showEvent(event)
953
965
  self.showMaximized()
954
966
 
967
+ def closeEvent(self, event):
968
+ """Ensure the explorer window is closed when the main window closes."""
969
+ if self.explorer_window:
970
+ # Setting parent to None prevents it from being deleted with main window
971
+ # before it can be properly handled.
972
+ self.explorer_window.setParent(None)
973
+ self.explorer_window.close()
974
+ super().closeEvent(event)
975
+
955
976
  def changeEvent(self, event):
956
977
  """Handle window state changes (minimize, maximize, restore)."""
957
978
  super().changeEvent(event)
@@ -1594,8 +1615,66 @@ class MainWindow(QMainWindow):
1594
1615
  self.export_mask_annotations_dialog.exec_()
1595
1616
  except Exception as e:
1596
1617
  QMessageBox.critical(self, "Critical Error", f"{e}")
1618
+
1619
+ def open_explorer_window(self):
1620
+ """Open the Explorer window, moving the LabelWindow into it."""
1621
+ # Check if there are any images in the project
1622
+ if not self.image_window.raster_manager.image_paths:
1623
+ QMessageBox.warning(self,
1624
+ "No Images Loaded",
1625
+ "Please load images into the project before opening Explorer.")
1626
+ return
1627
+
1628
+ # Check if there are any annotations
1629
+ if not self.annotation_window.annotations_dict:
1630
+ QMessageBox.warning(self,
1631
+ "Explorer",
1632
+ "No annotations are present in the project.")
1633
+ return
1634
+
1635
+ try:
1636
+ self.untoggle_all_tools()
1637
+ # Recreate the explorer window, passing the main window instance
1638
+ self.explorer_window = ExplorerWindow(self)
1639
+
1640
+ # Move the label_window from the main layout to the explorer
1641
+ # The ExplorerWindow's __init__ will handle adding it to its own layout.
1642
+ self.left_layout.removeWidget(self.label_window)
1643
+ self.label_window.setParent(self.explorer_window.left_panel) # Re-parent
1644
+ self.explorer_window.left_layout.insertWidget(1, self.label_window) # Add to explorer layout
1645
+
1646
+ # Make the explorer window modal to block interaction with main window
1647
+ self.explorer_window.setWindowModality(Qt.ApplicationModal)
1648
+ # Disable the main window explicitly
1649
+ self.setEnabled(False)
1650
+
1651
+ self.explorer_window.showMaximized()
1652
+ self.explorer_window.activateWindow()
1653
+ self.explorer_window.raise_()
1654
+ except Exception as e:
1655
+ QMessageBox.critical(self, "Critical Error", f"{e}")
1656
+ if self.explorer_window:
1657
+ self.explorer_window.close() # Ensure cleanup
1658
+ self.explorer_window = None
1659
+
1660
+ def explorer_closed(self):
1661
+ """Handle the explorer window being closed."""
1662
+ if self.explorer_window:
1663
+ # Move the label_window back to the main window's layout
1664
+ self.label_window.setParent(self.central_widget) # Re-parent back
1665
+ self.left_layout.addWidget(self.label_window, 15) # Add it back to the layout
1666
+ self.label_window.show()
1667
+ self.label_window.resizeEvent(None)
1668
+ self.resizeEvent(None)
1669
+
1670
+ # Re-enable the main window
1671
+ self.setEnabled(True)
1672
+
1673
+ # Clean up reference
1674
+ self.explorer_window = None
1597
1675
 
1598
1676
  def open_patch_annotation_sampling_dialog(self):
1677
+ """Open the Patch Annotation Sampling dialog to sample annotations from images"""
1599
1678
  # Check if there are any images in the project
1600
1679
  if not self.image_window.raster_manager.image_paths:
1601
1680
  QMessageBox.warning(self,
@@ -2312,4 +2391,4 @@ class ClickableAction(QAction):
2312
2391
  def mousePressEvent(self, event: QMouseEvent):
2313
2392
  if event.button() == Qt.LeftButton:
2314
2393
  self.trigger()
2315
- super().mousePressEvent(event)
2394
+ super().mousePressEvent(event)
@@ -69,6 +69,18 @@ class ProgressBar(QDialog):
69
69
  self.canceled = False
70
70
  self.progress_bar.setValue(0)
71
71
  QApplication.processEvents()
72
+
73
+ def set_busy_mode(self, busy_text="Processing..."):
74
+ """
75
+ Sets the progress bar to an indeterminate "busy" state for tasks
76
+ of unknown duration.
77
+ """
78
+ # Update the title to reflect the current task
79
+ self.set_title(busy_text)
80
+
81
+ # Setting the min and max to 0 enables the busy/indeterminate mode
82
+ self.progress_bar.setRange(0, 0)
83
+ QApplication.processEvents()
72
84
 
73
85
  def start_progress(self, max_value):
74
86
  """
@@ -564,6 +564,10 @@ class DeployGeneratorDialog(QDialog):
564
564
  self.update_sam_task_state()
565
565
  if self.task != 'segment':
566
566
  return results_list
567
+
568
+ if not self.sam_dialog or self.use_sam_dropdown.currentText() == "False":
569
+ # If SAM is not deployed or not selected, return the results as is
570
+ return results_list
567
571
 
568
572
  if self.sam_dialog.loaded_model is None:
569
573
  # If SAM is not loaded, ensure we do not use it accidentally
@@ -1,6 +1,6 @@
1
1
  """Top-level package for CoralNet-Toolbox."""
2
2
 
3
- __version__ = "0.0.66"
3
+ __version__ = "0.0.67"
4
4
  __author__ = "Jordan Pierce"
5
5
  __email__ = "jordan.pierce@noaa.gov"
6
6
  __credits__ = "National Center for Coastal and Ocean Sciences (NCCOS)"
@@ -18,6 +18,7 @@ from rasterio.windows import Window
18
18
  from shapely.validation import make_valid
19
19
  from shapely.geometry import Polygon, MultiPolygon, LineString, GeometryCollection
20
20
 
21
+ from PyQt5.QtCore import Qt
21
22
  from PyQt5.QtGui import QImage
22
23
  from PyQt5.QtWidgets import QMessageBox, QApplication, QPushButton
23
24
 
@@ -518,6 +519,29 @@ def pixmap_to_numpy(pixmap):
518
519
  return numpy_array
519
520
 
520
521
 
522
+ def scale_pixmap(pixmap, max_size):
523
+ """Scale pixmap and graphic if they exceed max dimension while preserving aspect ratio"""
524
+ width = pixmap.width()
525
+ height = pixmap.height()
526
+
527
+ # Check if scaling is needed
528
+ if width <= max_size and height <= max_size:
529
+ return pixmap
530
+
531
+ # Calculate scale factor based on largest dimension
532
+ scale = max_size / max(width, height)
533
+
534
+ # Scale pixmap
535
+ scaled_pixmap = pixmap.scaled(
536
+ int(width * scale),
537
+ int(height * scale),
538
+ Qt.KeepAspectRatio,
539
+ Qt.SmoothTransformation
540
+ )
541
+
542
+ return scaled_pixmap
543
+
544
+
521
545
  def attempt_download_asset(app, asset_name, asset_url):
522
546
  """
523
547
  Attempt to download an asset from the given URL.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: coralnet-toolbox
3
- Version: 0.0.66
3
+ Version: 0.0.67
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
@@ -21,6 +21,7 @@ Requires-Dist: lap>=0.5.12
21
21
  Requires-Dist: open-clip-torch>=2.20.0
22
22
  Requires-Dist: supervision>=0.24.0
23
23
  Requires-Dist: scikit-learn
24
+ Requires-Dist: umap-learn
24
25
  Requires-Dist: pycocotools
25
26
  Requires-Dist: ujson
26
27
  Requires-Dist: timm==0.9.2
@@ -1,23 +1,23 @@
1
1
  coralnet_toolbox/QtAnnotationWindow.py,sha256=ohYkvUdUAdNmZJXqKtCGnnXQ3cPtnSkFEtwH_mWnn3c,37808
2
- coralnet_toolbox/QtConfidenceWindow.py,sha256=m2cJyyqu3mM_wDvOm3mHJi8jLjgIkWfuBlYmanGOPpQ,16855
3
- coralnet_toolbox/QtEventFilter.py,sha256=_Vyd7IEmD_BAkf4gMifwW60N8iyLSVx3IWHeVBMYwOA,6015
2
+ coralnet_toolbox/QtConfidenceWindow.py,sha256=L5hR23uW91GpqnsNS9R1XF3zCTe2aU7w0iDoQMV0oyE,16190
3
+ coralnet_toolbox/QtEventFilter.py,sha256=mOtprjouvjHSo7II98dtYjtQkejh9GBUU8ORqQVfj-w,6014
4
4
  coralnet_toolbox/QtImageWindow.py,sha256=vLziMSEWFfVRSBN0nUNkosgk3LiNxZDqPwbinz9ZivQ,49356
5
- coralnet_toolbox/QtLabelWindow.py,sha256=c4l_B6CBqB0w0jYcrPOqbRT3eJTH4O62wbBxgOm9hbY,49437
6
- coralnet_toolbox/QtMainWindow.py,sha256=FWIlLgsFVvrTkutzInypOUACHD89P2WN8rUQ5t9H4lI,106488
5
+ coralnet_toolbox/QtLabelWindow.py,sha256=ZRJilFpp6hIJohKv6L_dKdt6gnwmyNWnHVtU5IyjrEg,50326
6
+ coralnet_toolbox/QtMainWindow.py,sha256=kkd27oCLnrwQkTi_dxcPE83gJg4ZSMy7MJdPW2qJ1FE,110105
7
7
  coralnet_toolbox/QtPatchSampling.py,sha256=Ehj06auBGfQwIruLNYQjF8eFOCpl8G72p42UXXb2mUo,29013
8
- coralnet_toolbox/QtProgressBar.py,sha256=Jie6FHwaSktynN_QlgzunSn1BLiWyTgYGmiMpbiu8p8,5808
8
+ coralnet_toolbox/QtProgressBar.py,sha256=pnozUOcVjfO_yTS9z8wOMPcrrrOtG_FeCknTcdI6eyk,6250
9
9
  coralnet_toolbox/QtWorkArea.py,sha256=YXRvHQKpWUtWyv_o9lZ8rmxfm28dUOG9pmMUeimDhQ4,13578
10
- coralnet_toolbox/__init__.py,sha256=9B11Af9Uxb34zn-Cs9GHXnRP3mfb7Jw_9j3LcHBs7Xo,207
10
+ coralnet_toolbox/__init__.py,sha256=H0IXXlx-vwZwsjELFjOcUWDaJgGmf3_swUlksKpj5L4,207
11
11
  coralnet_toolbox/main.py,sha256=6j2B_1reC_KDmqvq1C0fB-UeSEm8eeJOozp2f4XXMLQ,1573
12
- coralnet_toolbox/utilities.py,sha256=iL-IkBAyqQH7So08lN2UldBR0Wv8NrOFKzqa0SByGPE,26470
12
+ coralnet_toolbox/utilities.py,sha256=eUkxXuWaNFH83LSW-KniwujkXKJ2rK04czx3k3OPiAY,27115
13
13
  coralnet_toolbox/Annotations/QtAnnotation.py,sha256=I2Givo3p92gfyVYnnFHBjxso-hmQCCXM531Pygiebfw,29242
14
- coralnet_toolbox/Annotations/QtMultiPolygonAnnotation.py,sha256=c9-0U4xFbUc6BTpqbNcdxyiraz-gli5vMF4fFM0jhIM,15587
15
- coralnet_toolbox/Annotations/QtPatchAnnotation.py,sha256=kRjmmS8sl6MqcWrY-jpZyEzoXS237gr-5JgqFCfGGxk,20084
16
- coralnet_toolbox/Annotations/QtPolygonAnnotation.py,sha256=X4YKBKh33Wm-5ESpRXFITseLxLr8eyWz1gOsNSzWRYE,26894
17
- coralnet_toolbox/Annotations/QtRectangleAnnotation.py,sha256=z2ADBMztq61lIY_qNdYBiIVxZxpx4rRW7kq3Ntf2ngo,20098
14
+ coralnet_toolbox/Annotations/QtMultiPolygonAnnotation.py,sha256=ErAT31gw-zhEVNxkPRpyB9uw-NSpPh-ShCBxpscXdRw,15579
15
+ coralnet_toolbox/Annotations/QtPatchAnnotation.py,sha256=67fNnK_-muyhGZdGB0kBDx-JGuflv1TM6q5ikfW_zOk,20076
16
+ coralnet_toolbox/Annotations/QtPolygonAnnotation.py,sha256=1EkZEJlO4VZ4so01Sat2T8LeO1LNs7HbGJLO-G2_73Q,26886
17
+ coralnet_toolbox/Annotations/QtRectangleAnnotation.py,sha256=nLL_HIkcnuB6CeqE-v8LMAoFgTEhZGHwt5yeEnLaVWQ,20090
18
18
  coralnet_toolbox/Annotations/__init__.py,sha256=bpMldC70tT_lzMrOdBNDkEhG9dCX3tXEBd48IrcUg3E,419
19
19
  coralnet_toolbox/AutoDistill/QtBatchInference.py,sha256=k871aW3XRX8kc4BDaS1aipbPh9WOZxgmilF2c4KOdVA,5646
20
- coralnet_toolbox/AutoDistill/QtDeployModel.py,sha256=wwMIM4ZRtfSZR5_es7S4cEaQj353FFaurLbMrLRiwy0,24960
20
+ coralnet_toolbox/AutoDistill/QtDeployModel.py,sha256=6alhzvA3KYEeLaQj-Qhs9GicjNQyVoQbnvgZ3lxGnCU,25162
21
21
  coralnet_toolbox/AutoDistill/__init__.py,sha256=-cJSCr3HSVcybbkvdSZY_zz9EDLESq9A3gisHu3gIgM,206
22
22
  coralnet_toolbox/AutoDistill/Models/GroundingDINO.py,sha256=xG20nLOrKjtzRhZznIIdwFXxBJ7RCeQ7h1z0V0J6trE,2781
23
23
  coralnet_toolbox/AutoDistill/Models/OWLViT.py,sha256=disVxSQ80sS4SVYdwrQocFP_LN6YDQQhzfeORWe4veU,2572
@@ -35,6 +35,12 @@ coralnet_toolbox/Common/QtUpdateImagePaths.py,sha256=_hJYx6hXdAOfH_m77f75AQduQ0W
35
35
  coralnet_toolbox/CoralNet/QtAuthenticate.py,sha256=Y__iY0Kcosz6AOV7dlJBwiB6Hte40wHahHe-OmRngZA,13267
36
36
  coralnet_toolbox/CoralNet/QtDownload.py,sha256=HBb8TpZRIEFirGIaIAV1v8qg3fL4cP6Bf-hUiqXoiLE,48516
37
37
  coralnet_toolbox/CoralNet/__init__.py,sha256=ILkAZh6mlAK1UaCCZjCB9JZxd-oY4cIgfnIC8UgjjIU,188
38
+ coralnet_toolbox/Explorer/QtAnnotationDataItem.py,sha256=Med4WHv-m-hQGKpjqBVnQskP0lgJBY55FxoiqaGCJao,3773
39
+ coralnet_toolbox/Explorer/QtAnnotationImageWidget.py,sha256=OKz8B8d0HWthhz7rYM1xzoBPjKAqttCOsfxjPmvqvpM,7384
40
+ coralnet_toolbox/Explorer/QtEmbeddingPointItem.py,sha256=zxLzC5-qBUoMaDem-e6Tw8IazPT_Nhv_nRPkIbn_QqY,1178
41
+ coralnet_toolbox/Explorer/QtExplorer.py,sha256=cyo6X4W2pbIJqj-QFtbGk328Fmw63D9XxCIriGl2WMI,90169
42
+ coralnet_toolbox/Explorer/QtSettingsWidgets.py,sha256=9SUcGaxBBoIDWNhjKGzJoJ4iFwvg1Om4XmZ9T4WsjrE,20584
43
+ coralnet_toolbox/Explorer/__init__.py,sha256=wZPhf2oaUUyIQ2WK48Aj-4q1ENIZG2dGl1HF_mjhI6w,116
38
44
  coralnet_toolbox/IO/QtExportAnnotations.py,sha256=xeaS0BukC3cpkBIGT9DXRqHmvHhp-vOU47h6EoANpNg,4474
39
45
  coralnet_toolbox/IO/QtExportCoralNetAnnotations.py,sha256=4royhF63EmeOlSIBX389EUjjvE-SF44_maW6qm52mdA,2778
40
46
  coralnet_toolbox/IO/QtExportGeoJSONAnnotations.py,sha256=9HkHjQTRtH4VnYa50c5pyqQz30R_6gIH5i3xFF6kDWI,27759
@@ -51,8 +57,8 @@ coralnet_toolbox/IO/QtImportImages.py,sha256=apgv16dzcg-j6ugimvG_Houtu3m--Y9jyAZ
51
57
  coralnet_toolbox/IO/QtImportLabels.py,sha256=_xzm-TDoFVgAbjdBwvOscVskPcLN_z054P5IkT73ohU,3291
52
58
  coralnet_toolbox/IO/QtImportTagLabAnnotations.py,sha256=os4D7SLy6BkzZ1DlWSA_QOoREXUuji0I7XGZS1az5GQ,12321
53
59
  coralnet_toolbox/IO/QtImportTagLabLabels.py,sha256=cCqFBOrAlnbiOL0xFY8G_FSTmeVsnYWh-bmVE-rfg0k,3927
54
- coralnet_toolbox/IO/QtImportViscoreAnnotations.py,sha256=VleKLlj6XY6AvVxNPo5pU20n81p9DTHGSH8PrYec2X0,12103
55
- coralnet_toolbox/IO/QtOpenProject.py,sha256=rgYOKekAyqYZqhrcydEN35Di0leDfuFfBvZdajLE5ts,15767
60
+ coralnet_toolbox/IO/QtImportViscoreAnnotations.py,sha256=TYlDzCLMXizoHFRiaofNdE-t9Cr7sJGj5NFsVUi6cjU,11871
61
+ coralnet_toolbox/IO/QtOpenProject.py,sha256=aiQ8J7ROv8D1cPaMRaRr7arMxou4_-w5IJ7fTzWNS1o,15841
56
62
  coralnet_toolbox/IO/QtSaveProject.py,sha256=TRUfg9AnyHe79mqNzV4Pzw60RVd65xEjxzBb_-ttzXM,11397
57
63
  coralnet_toolbox/IO/__init__.py,sha256=M3KH90zIoOVoPu1nDS-gvoVV3O24S_KM-4CvxXR-nfw,1538
58
64
  coralnet_toolbox/Icons/1.png,sha256=Ygcz3idjoa-RNaPXQXbHfw853DhnpD6iBa3nNFVimJ4,180
@@ -72,6 +78,7 @@ coralnet_toolbox/Icons/hide.png,sha256=eEV9v7i5_tQM25ktzknBKtIR0uOhuqacvPhhhbwop
72
78
  coralnet_toolbox/Icons/home.png,sha256=YGOhpX2yZuFU-GkuO8jH8-4Kfwu8qBILw9k_kw_NATo,738
73
79
  coralnet_toolbox/Icons/lock.png,sha256=ap_g-9bNu4w6fiXVve6ktdEnzldR_VkmAFK0MVtQrCc,1682
74
80
  coralnet_toolbox/Icons/machine.png,sha256=W6vcCd8zfxv8znGwF7bAtG5YskpWoYidkme4BHq_S6A,1044
81
+ coralnet_toolbox/Icons/magic.png,sha256=V2ULBwI2ClnKyYRiCKeJ1g-hi1jLSZRKSc0NQLYH9Yo,1889
75
82
  coralnet_toolbox/Icons/opaque.png,sha256=53S_jopgS7jffpNLB2pCBex5cWN86vNr801j30kP-2s,823
76
83
  coralnet_toolbox/Icons/parameters.png,sha256=tdSCfhr_dauBmZoJdxgu6LhiOXmRsfoQeJO0IfAFZKE,1362
77
84
  coralnet_toolbox/Icons/patch.png,sha256=ZcvdB15jrnqtzVh344OQgSq0buIKY9BZ7NRsxDNMo90,543
@@ -119,8 +126,8 @@ coralnet_toolbox/MachineLearning/Community/cfg/segment/yolo11-p2.yaml,sha256=H2P
119
126
  coralnet_toolbox/MachineLearning/Community/cfg/segment/yolo11-p6.yaml,sha256=jg2PDDeIPvBG_QXNOMyro7LYLy0HNZ5F4s7fiAg0xys,3283
120
127
  coralnet_toolbox/MachineLearning/DeployModel/QtBase.py,sha256=ZK2p9euv9AM2hhpAYWyVLcIk_8UwMVgeTAEYQbXWJBw,12609
121
128
  coralnet_toolbox/MachineLearning/DeployModel/QtClassify.py,sha256=4YSEENGY2pZpiFqt1tfr-m1oHhP9V4uID8gdOVkZwwI,6331
122
- coralnet_toolbox/MachineLearning/DeployModel/QtDetect.py,sha256=Yw1NfLfC6-gXizJu6zzhUhgg4QPJRfR4qjRpkoXpab8,14728
123
- coralnet_toolbox/MachineLearning/DeployModel/QtSegment.py,sha256=_ggTlnyuuZABy9I8fbaYEttKFz3cNzbPxpfVAGkbaVI,14456
129
+ coralnet_toolbox/MachineLearning/DeployModel/QtDetect.py,sha256=RL_S88RxX0c7FBSy0Mmzeq7AErIyjRh-k0SjzTcjczU,14930
130
+ coralnet_toolbox/MachineLearning/DeployModel/QtSegment.py,sha256=jL2tdLzOixdJ9pwloqJH2Bq6FOew3yg1ebBrLFrr5_Q,14658
124
131
  coralnet_toolbox/MachineLearning/DeployModel/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
125
132
  coralnet_toolbox/MachineLearning/EvaluateModel/QtBase.py,sha256=stOQlB9NP1kZLwfQipA8J8_EzcgKi-9rvxar_AyWwjc,11526
126
133
  coralnet_toolbox/MachineLearning/EvaluateModel/QtClassify.py,sha256=EsUBbSxcoOymO3ezPUI1X0M_g9x7Y2oVU5myflet7pw,2268
@@ -142,7 +149,7 @@ coralnet_toolbox/MachineLearning/MergeDatasets/__init__.py,sha256=47DEQpj8HBSa-_
142
149
  coralnet_toolbox/MachineLearning/OptimizeModel/QtBase.py,sha256=06irheL8aKvtwKBQLLJUohvWvrMqKFC-jhEEoVqIYdg,8890
143
150
  coralnet_toolbox/MachineLearning/OptimizeModel/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
144
151
  coralnet_toolbox/MachineLearning/TrainModel/QtBase.py,sha256=lLGmgDSvjQFYD2RdF7eC6U5xU5in2rC26RQ3lmKvfLY,37460
145
- coralnet_toolbox/MachineLearning/TrainModel/QtClassify.py,sha256=8hiBk_VmYpCX8Tr7LG4OW4PvqQLItOPyQryJarMcTWI,3266
152
+ coralnet_toolbox/MachineLearning/TrainModel/QtClassify.py,sha256=ss5ppGbrpULzUPmeRmfqZjiqZPp7XbdUZ4BzSX0ehu0,3267
146
153
  coralnet_toolbox/MachineLearning/TrainModel/QtDetect.py,sha256=uxopZkrNkl3tImMNSDwC2ENpFAxdG0NLiwRwqNnbep0,4467
147
154
  coralnet_toolbox/MachineLearning/TrainModel/QtSegment.py,sha256=y8bpNS24SQxyg967RSi6TraqHSmlJYj8kbvC_5HMBIM,3597
148
155
  coralnet_toolbox/MachineLearning/TrainModel/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -178,7 +185,7 @@ coralnet_toolbox/Results/Masks.py,sha256=C-zoobRaWXP_QdGcL7ZgSxytHOBdHIBUbQuGnoM
178
185
  coralnet_toolbox/Results/ResultsProcessor.py,sha256=q_UZNYggpZyY4_P6RpDLbY1ygNH49GXlP1s9ZFI3yF0,17261
179
186
  coralnet_toolbox/Results/__init__.py,sha256=WPdlq8aXzjrdQo5T3UqFh7jxge33iNEHiSRAmm0eJuw,630
180
187
  coralnet_toolbox/SAM/QtBatchInference.py,sha256=zG0vVPBIozZQu043hwjI3_gjlwx-iWeikhu3QxMam4U,6931
181
- coralnet_toolbox/SAM/QtDeployGenerator.py,sha256=YnmsZVkdfetkVr4FMxw670kF6Qwdu-58j-L98G81FRM,25587
188
+ coralnet_toolbox/SAM/QtDeployGenerator.py,sha256=CcedOASyV_jLJyqsLRdkeGKBY8Y_AjwWt2-_xgLcdk4,25789
182
189
  coralnet_toolbox/SAM/QtDeployPredictor.py,sha256=D1DyqjLXQDTNiLp9OVgsiI97fMFftab_goEkQvDH1DU,23516
183
190
  coralnet_toolbox/SAM/__init__.py,sha256=Zxd75pFMrt5DfSmNNVSsQeCucIQ2rVaEiS0hT_OVIMM,293
184
191
  coralnet_toolbox/SeeAnything/QtBatchInference.py,sha256=1UMogdTWgO3eEwTquJpIYjILUbjkhLEHFDGsHSGzY-I,16200
@@ -209,9 +216,9 @@ coralnet_toolbox/Tools/QtTool.py,sha256=2MCjT151gYBN8KbsK0GX4WOrEg1uw3oeSkp7Elw1
209
216
  coralnet_toolbox/Tools/QtWorkAreaTool.py,sha256=-CDrEPenOdSI3sf5wn19Cip4alE1ef7WsRDxQFDkHlc,22162
210
217
  coralnet_toolbox/Tools/QtZoomTool.py,sha256=F9CAoABv1jxcUS7dyIh1FYjgjOXYRI1xtBPNIR1g62o,4041
211
218
  coralnet_toolbox/Tools/__init__.py,sha256=218iQ8IFXIkKXiUDVYtXk9e08UY9-LhHjcryaJAanQ0,797
212
- coralnet_toolbox-0.0.66.dist-info/licenses/LICENSE.txt,sha256=AURacZ_G_PZKqqPQ9VB9Sqegblk67RNgWSGAYKwXXMY,521
213
- coralnet_toolbox-0.0.66.dist-info/METADATA,sha256=qfto0iWfF3y1_KaU8v69Do8HnVj-3Rm958g5Xv6pxFg,17070
214
- coralnet_toolbox-0.0.66.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
215
- coralnet_toolbox-0.0.66.dist-info/entry_points.txt,sha256=oEeMoDlJ_2lq95quOeDHIx9hZpubUlSo80OLtgbcrbM,63
216
- coralnet_toolbox-0.0.66.dist-info/top_level.txt,sha256=SMWPh4_9JfB8zVpPOOvjucV2_B_hvWW7bNWmMjG0LsY,17
217
- coralnet_toolbox-0.0.66.dist-info/RECORD,,
219
+ coralnet_toolbox-0.0.67.dist-info/licenses/LICENSE.txt,sha256=AURacZ_G_PZKqqPQ9VB9Sqegblk67RNgWSGAYKwXXMY,521
220
+ coralnet_toolbox-0.0.67.dist-info/METADATA,sha256=2XfsFYzFeUyltrApg9HVRc8Smn5ALfwLriIwc6zv994,17096
221
+ coralnet_toolbox-0.0.67.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
222
+ coralnet_toolbox-0.0.67.dist-info/entry_points.txt,sha256=oEeMoDlJ_2lq95quOeDHIx9hZpubUlSo80OLtgbcrbM,63
223
+ coralnet_toolbox-0.0.67.dist-info/top_level.txt,sha256=SMWPh4_9JfB8zVpPOOvjucV2_B_hvWW7bNWmMjG0LsY,17
224
+ coralnet_toolbox-0.0.67.dist-info/RECORD,,