batoolset 0.1.7__tar.gz → 0.1.8__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.
- {batoolset-0.1.7 → batoolset-0.1.8}/PKG-INFO +2 -1
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/GUI/multi_image_display.py +2 -2
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/GUI/paint2.py +2 -3
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/GUI/scrollablepaint.py +3 -3
- batoolset-0.1.7/batoolset/binarytools/cell_center_detector.py → batoolset-0.1.8/batoolset/binaries/tools.py +120 -3
- {batoolset-0.1.7/batoolset/draw → batoolset-0.1.8/batoolset/drawings}/shapes/Position.py +1 -1
- {batoolset-0.1.7/batoolset/draw → batoolset-0.1.8/batoolset/drawings}/shapes/automated_alignment_drawing_refactored.py +2 -2
- {batoolset-0.1.7/batoolset/draw → batoolset-0.1.8/batoolset/drawings}/shapes/circle2d.py +1 -1
- {batoolset-0.1.7/batoolset/draw → batoolset-0.1.8/batoolset/drawings}/shapes/compute_optimal_size_all_merged.py +1 -1
- {batoolset-0.1.7/batoolset/draw → batoolset-0.1.8/batoolset/drawings}/shapes/freehand2d.py +2 -2
- {batoolset-0.1.7/batoolset/draw → batoolset-0.1.8/batoolset/drawings}/shapes/group.py +6 -6
- {batoolset-0.1.7/batoolset/draw → batoolset-0.1.8/batoolset/drawings}/shapes/image2d.py +10 -10
- {batoolset-0.1.7/batoolset/draw → batoolset-0.1.8/batoolset/drawings}/shapes/point2d.py +1 -1
- {batoolset-0.1.7/batoolset/draw → batoolset-0.1.8/batoolset/drawings}/shapes/polygon2d.py +1 -1
- {batoolset-0.1.7/batoolset/draw → batoolset-0.1.8/batoolset/drawings}/shapes/polyline2d.py +1 -1
- {batoolset-0.1.7/batoolset/draw → batoolset-0.1.8/batoolset/drawings}/shapes/scalebar.py +3 -3
- {batoolset-0.1.7/batoolset/draw → batoolset-0.1.8/batoolset/drawings}/shapes/serializablefont.py +3 -3
- {batoolset-0.1.7/batoolset/draw → batoolset-0.1.8/batoolset/drawings}/shapes/square2d.py +2 -3
- {batoolset-0.1.7/batoolset/draw → batoolset-0.1.8/batoolset/drawings}/shapes/transform2D.py +9 -9
- {batoolset-0.1.7/batoolset/draw → batoolset-0.1.8/batoolset/drawings}/shapes/txt2d.py +4 -4
- {batoolset-0.1.7/batoolset/draw → batoolset-0.1.8/batoolset/drawings}/widgets/col.py +2 -2
- {batoolset-0.1.7/batoolset/draw → batoolset-0.1.8/batoolset/drawings}/widgets/image_group.py +1 -1
- {batoolset-0.1.7/batoolset/draw → batoolset-0.1.8/batoolset/drawings}/widgets/image_organizer.py +1 -1
- {batoolset-0.1.7/batoolset/draw → batoolset-0.1.8/batoolset/drawings}/widgets/paint.py +1 -1
- {batoolset-0.1.7/batoolset/draw → batoolset-0.1.8/batoolset/drawings}/widgets/vectorial.py +12 -13
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/figure/alignment.py +2 -2
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/figure/column.py +3 -3
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/figure/fig_tools.py +1 -1
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/figure/minimal_debugger_scale_etc.py +1 -1
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/figure/panel.py +8 -8
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/figure/row.py +3 -3
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/files/tools.py +13 -4
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/img.py +39 -7
- batoolset-0.1.8/batoolset/javas/tools.py +60 -0
- {batoolset-0.1.7/batoolset/serialization → batoolset-0.1.8/batoolset/serializations}/tools.py +25 -25
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/ta/database/advanced_sql_plotter.py +1 -1
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/ta/database/my_qt_table.py +1 -1
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/ta/database/sql.py +2 -2
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/ta/measurements/nematic.py +1 -1
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/version.py +1 -1
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset.egg-info/PKG-INFO +2 -1
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset.egg-info/SOURCES.txt +62 -63
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset.egg-info/requires.txt +1 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/setup.py +1 -0
- batoolset-0.1.7/batoolset/binary/tools.py +0 -123
- batoolset-0.1.7/batoolset/np_tools/trash.py +0 -15
- {batoolset-0.1.7 → batoolset-0.1.8}/LICENSE +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/README.md +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/GUI/__init__.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/GUI/list_gui.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/GUI/open.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/GUI/overlay_hints.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/IJ_ROIs/__init__.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/IJ_ROIs/tools.py +0 -0
- {batoolset-0.1.7/batoolset/PATH → batoolset-0.1.8/batoolset/SQLites}/__init__.py +0 -0
- {batoolset-0.1.7/batoolset/SQLite_tools → batoolset-0.1.8/batoolset/SQLites}/tools.py +0 -0
- {batoolset-0.1.7/batoolset/SQLite_tools → batoolset-0.1.8/batoolset}/__init__.py +0 -0
- {batoolset-0.1.7/batoolset → batoolset-0.1.8/batoolset/binaries}/__init__.py +0 -0
- {batoolset-0.1.7/batoolset/binary → batoolset-0.1.8/batoolset/clipboards}/__init__.py +0 -0
- {batoolset-0.1.7/batoolset/clipboard_tools → batoolset-0.1.8/batoolset/clipboards}/tools.py +0 -0
- {batoolset-0.1.7/batoolset/binarytools → batoolset-0.1.8/batoolset/colors}/__init__.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/colors/colorgen.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/colors/tools.py +0 -0
- {batoolset-0.1.7/batoolset/clipboard_tools → batoolset-0.1.8/batoolset/command_line}/__init__.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/command_line/tools.py +0 -0
- {batoolset-0.1.7/batoolset/colors → batoolset-0.1.8/batoolset/dialogs}/__init__.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/dialogs/opensave.py +0 -0
- {batoolset-0.1.7/batoolset/command_line → batoolset-0.1.8/batoolset/dicts}/__init__.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/dicts/tools.py +0 -0
- {batoolset-0.1.7/batoolset/dialogs → batoolset-0.1.8/batoolset/dims}/__init__.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/dims/tools.py +0 -0
- {batoolset-0.1.7/batoolset/dicts → batoolset-0.1.8/batoolset/drawings}/__init__.py +0 -0
- {batoolset-0.1.7/batoolset/dims → batoolset-0.1.8/batoolset/drawings/shapes}/__init__.py +0 -0
- {batoolset-0.1.7/batoolset/draw → batoolset-0.1.8/batoolset/drawings}/shapes/ellipse2d.py +0 -0
- {batoolset-0.1.7/batoolset/draw → batoolset-0.1.8/batoolset/drawings}/shapes/line2d.py +0 -0
- {batoolset-0.1.7/batoolset/draw → batoolset-0.1.8/batoolset/drawings}/shapes/rect2d.py +0 -0
- {batoolset-0.1.7/batoolset/draw → batoolset-0.1.8/batoolset/drawings}/shapes/rectangle2d.py +0 -0
- {batoolset-0.1.7/batoolset/draw → batoolset-0.1.8/batoolset/drawings}/shapes/serializableguiparams.py +0 -0
- {batoolset-0.1.7/batoolset/draw → batoolset-0.1.8/batoolset/drawings}/shapes/textorientation.py +0 -0
- {batoolset-0.1.7/batoolset/draw → batoolset-0.1.8/batoolset/drawings}/shapes/tools.py +0 -0
- {batoolset-0.1.7/batoolset/draw → batoolset-0.1.8/batoolset/drawings/widgets}/__init__.py +0 -0
- {batoolset-0.1.7/batoolset/draw/shapes → batoolset-0.1.8/batoolset/figure}/__init__.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/figure/user_selection.py +0 -0
- {batoolset-0.1.7/batoolset/draw/widgets → batoolset-0.1.8/batoolset/files}/__init__.py +0 -0
- {batoolset-0.1.7/batoolset/figure → batoolset-0.1.8/batoolset/images}/__init__.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/images/centralstore.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/images/tools.py +0 -0
- {batoolset-0.1.7/batoolset/files → batoolset-0.1.8/batoolset/javas}/__init__.py +0 -0
- {batoolset-0.1.7/batoolset/images → batoolset-0.1.8/batoolset/linux}/__init__.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/linux/tools.py +0 -0
- {batoolset-0.1.7/batoolset/linux → batoolset-0.1.8/batoolset/lists}/__init__.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/lists/tools.py +0 -0
- {batoolset-0.1.7/batoolset/lists → batoolset-0.1.8/batoolset/luts}/__init__.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/luts/lut_minimal_test.py +0 -0
- {batoolset-0.1.7/batoolset/luts → batoolset-0.1.8/batoolset/matplolibs}/__init__.py +0 -0
- {batoolset-0.1.7/batoolset/matplolib → batoolset-0.1.8/batoolset/matplolibs}/tools.py +0 -0
- {batoolset-0.1.7/batoolset/matplolib → batoolset-0.1.8/batoolset/nps}/__init__.py +0 -0
- {batoolset-0.1.7/batoolset/np_tools → batoolset-0.1.8/batoolset/nps}/tools.py +0 -0
- {batoolset-0.1.7/batoolset/np_tools → batoolset-0.1.8/batoolset/pandaz}/__init__.py +0 -0
- {batoolset-0.1.7/batoolset/pandas_tools → batoolset-0.1.8/batoolset/pandaz}/tools.py +0 -0
- {batoolset-0.1.7/batoolset/pandas_tools → batoolset-0.1.8/batoolset/partials}/__init__.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/partials/tools.py +0 -0
- {batoolset-0.1.7/batoolset/partials → batoolset-0.1.8/batoolset/paths}/__init__.py +0 -0
- {batoolset-0.1.7/batoolset/PATH → batoolset-0.1.8/batoolset/paths}/tools.py +0 -0
- {batoolset-0.1.7/batoolset/plot_tools → batoolset-0.1.8/batoolset/plots}/__init__.py +0 -0
- {batoolset-0.1.7/batoolset/plot_tools → batoolset-0.1.8/batoolset/plots}/tools.py +0 -0
- {batoolset-0.1.7/batoolset/pyqt → batoolset-0.1.8/batoolset/pyqts}/__init__.py +0 -0
- {batoolset-0.1.7/batoolset/pyqt → batoolset-0.1.8/batoolset/pyqts}/pleasewaitdialog.py +0 -0
- {batoolset-0.1.7/batoolset/pyqt → batoolset-0.1.8/batoolset/pyqts}/tools.py +0 -0
- {batoolset-0.1.7/batoolset/re_tools → batoolset-0.1.8/batoolset/res}/__init__.py +0 -0
- {batoolset-0.1.7/batoolset/re_tools → batoolset-0.1.8/batoolset/res}/tools.py +0 -0
- {batoolset-0.1.7/batoolset/serialization → batoolset-0.1.8/batoolset/serializations}/__init__.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/sets/__init__.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/sets/tools.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/settings/__init__.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/settings/global_settings.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/strings/__init__.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/strings/tools.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/ta/__init__.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/ta/database/__init__.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/ta/database/preview_and_edit_sqlite_db.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/ta/database/sql_column_name_dialog.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/ta/measurements/TAmeasures.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/ta/measurements/__init__.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/ta/measurements/measurements3D/__init__.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/ta/measurements/measurements3D/get_point_on_surface_if_centroid_is_bad.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/ta/measurements/measurements3D/height_map_to_projection.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/ta/measurements/measurements3D/measures3D.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/ta/measurements/measurements3D/triangulate.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/ta/measurements/nematic_measurements.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/ta/segmentation/__init__.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/ta/segmentation/neo_wshed.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/ta/selections/__init__.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/ta/selections/selection.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/ta/tracking/__init__.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/ta/tracking/last_tracking_based_on_matching_or_on_translation_from_mermaid_warp.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/ta/tracking/local_to_track_correspondance.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/ta/tracking/rapid_detection_of_vertices.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/ta/tracking/registration.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/ta/tracking/swap_detector_and_fixer.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/ta/tracking/track_correction.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/ta/tracking/tracking_error_detector_and_fixer.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/ta/tracking/tracking_yet_another_approach_pyramidal_registration_n_neo_swapping_correction.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/ta/utils/TA_tools.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/ta/utils/__init__.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/ta/utils/rps_tools.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/tests/__init__.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/tests/rps_tools.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/tests/tools.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/tools/__init__.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/tools/early_stopper_class.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/tools/guided_data_recoverer.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/tools/logger.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/tools/mytimer.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/tools/prompt_color.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/tools/qthandler.py +0 -0
- {batoolset-0.1.7/batoolset/uitools → batoolset-0.1.8/batoolset/uis}/__init__.py +0 -0
- {batoolset-0.1.7/batoolset/uitools → batoolset-0.1.8/batoolset/uis}/blinker.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/unsafe/__init__.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/unsafe/tools.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/utils/__init__.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/utils/commontools.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset/utils/loadlist.py +0 -0
- {batoolset-0.1.7/batoolset/xml → batoolset-0.1.8/batoolset/xmls}/__init__.py +0 -0
- {batoolset-0.1.7/batoolset/xml → batoolset-0.1.8/batoolset/xmls}/tools.py +0 -0
- {batoolset-0.1.7/batoolset/zarr → batoolset-0.1.8/batoolset/zarrs}/__init__.py +0 -0
- {batoolset-0.1.7/batoolset/zip_tools → batoolset-0.1.8/batoolset/zips}/__init__.py +0 -0
- {batoolset-0.1.7/batoolset/zip_tools → batoolset-0.1.8/batoolset/zips}/tools.py +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset.egg-info/dependency_links.txt +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/batoolset.egg-info/top_level.txt +0 -0
- {batoolset-0.1.7 → batoolset-0.1.8}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: batoolset
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.8
|
|
4
4
|
Summary: An aggregate of functions I find useful
|
|
5
5
|
Home-page: https://github.com/baigouy/batoolset
|
|
6
6
|
Author: Benoit Aigouy
|
|
@@ -39,6 +39,7 @@ Requires-Dist: Deprecated
|
|
|
39
39
|
Requires-Dist: Requests
|
|
40
40
|
Requires-Dist: pyautogui
|
|
41
41
|
Requires-Dist: imagecodecs
|
|
42
|
+
Requires-Dist: psutil
|
|
42
43
|
Provides-Extra: all
|
|
43
44
|
Requires-Dist: python-javabridge; extra == "all"
|
|
44
45
|
Requires-Dist: python-bioformats; extra == "all"
|
|
@@ -11,9 +11,9 @@ from qtpy.QtWidgets import QApplication, QGridLayout, QScrollArea, QLabel, QVBox
|
|
|
11
11
|
QStyleOptionTitleBar, QMessageBox, QDialogButtonBox
|
|
12
12
|
# from deprecated_demos.ta.wshed import Wshed
|
|
13
13
|
from batoolset.ta.segmentation.neo_wshed import wshed
|
|
14
|
-
# from batoolset.
|
|
14
|
+
# from batoolset.drawings.widgets.paint import Createpaintwidget
|
|
15
15
|
from batoolset.img import Img, RGB_to_int24
|
|
16
|
-
from batoolset.
|
|
16
|
+
from batoolset.drawings.shapes.rect2d import Rect2D
|
|
17
17
|
|
|
18
18
|
# TODO add shortcuts to zoom and so on so that I can handle it better
|
|
19
19
|
# TODO maybe store the raw image in it
|
|
@@ -2,17 +2,16 @@
|
|
|
2
2
|
# NB this will ultimately become the one and only paint widget in the app --> all others or most of them should disappear and be replaced by that
|
|
3
3
|
# TODO need add the save but only for the mask edit item!!!
|
|
4
4
|
import os
|
|
5
|
-
|
|
6
|
-
from batoolset.pyqt.tools import getCtrlModifier
|
|
7
5
|
from batoolset.settings.global_settings import set_UI # set the UI to qtpy
|
|
8
6
|
set_UI()
|
|
7
|
+
from batoolset.pyqts.tools import getCtrlModifier
|
|
9
8
|
import traceback
|
|
10
9
|
from qtpy.QtGui import QKeySequence
|
|
11
10
|
from skimage.measure import label, regionprops
|
|
12
11
|
from qtpy.QtCore import QRect, QTimer, Qt
|
|
13
12
|
from qtpy.QtWidgets import QWidget, QApplication, QMessageBox
|
|
14
13
|
from batoolset.dialogs.opensave import saveFileDialog
|
|
15
|
-
from batoolset.
|
|
14
|
+
from batoolset.drawings.widgets.vectorial import VectorialDrawPane
|
|
16
15
|
from qtpy.QtWidgets import QMenu
|
|
17
16
|
from qtpy import QtCore, QtGui, QtWidgets
|
|
18
17
|
from batoolset.img import toQimage, Img, get_white_bounds, RGB_to_int24, is_binary, auto_scale, save_as_tiff
|
|
@@ -15,9 +15,9 @@ from qtpy.QtWidgets import QScrollArea, QVBoxLayout, QWidget, QSpinBox, QComboBo
|
|
|
15
15
|
QHBoxLayout, QAction, QSlider
|
|
16
16
|
import qtawesome as qta
|
|
17
17
|
from qtpy.QtCore import Qt, QTimer
|
|
18
|
-
from batoolset.
|
|
19
|
-
from batoolset.
|
|
20
|
-
from batoolset.
|
|
18
|
+
from batoolset.drawings.shapes.freehand2d import Freehand2D
|
|
19
|
+
from batoolset.drawings.shapes.image2d import Image2D
|
|
20
|
+
from batoolset.drawings.shapes.rect2d import Rect2D
|
|
21
21
|
from batoolset.img import Img, int24_to_RGB, has_metadata
|
|
22
22
|
from batoolset.GUI.paint2 import Createpaintwidget
|
|
23
23
|
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
+
# this will contain a set of binary tools
|
|
2
|
+
from skimage.draw import ellipse
|
|
3
|
+
import numpy as np
|
|
4
|
+
import matplotlib.pyplot as plt
|
|
5
|
+
from skimage import data, filters
|
|
6
|
+
from skimage.filters.thresholding import threshold_otsu
|
|
1
7
|
import math
|
|
2
8
|
from skimage.measure import label, regionprops
|
|
3
9
|
from timeit import default_timer as timer
|
|
4
|
-
|
|
5
|
-
import matplotlib.pyplot as plt
|
|
10
|
+
|
|
6
11
|
|
|
7
12
|
def add_2d_border(image2d):
|
|
8
13
|
"""
|
|
@@ -285,6 +290,118 @@ def _get_seeds(cells, horiz_gradient, vertical_gradient):
|
|
|
285
290
|
|
|
286
291
|
return combined_gradients_ready_for_wshed, highest_pixels
|
|
287
292
|
|
|
293
|
+
def ellipsoidify_dots(binary_dots):
|
|
294
|
+
"""
|
|
295
|
+
Replaces all 2D dots detected by an equivalent ellipse using bbox radius to draw the dot.
|
|
296
|
+
|
|
297
|
+
Args:
|
|
298
|
+
binary_dots (ndarray): An image that contains dots (typically obtained through binarization of an image).
|
|
299
|
+
|
|
300
|
+
Returns:
|
|
301
|
+
ndarray: The modified image with dots replaced by ellipses.
|
|
302
|
+
|
|
303
|
+
Examples:
|
|
304
|
+
>>> binary_dots = np.array([[0, 0, 0, 0],
|
|
305
|
+
... [0, 1, 0, 0],
|
|
306
|
+
... [0, 0, 0, 0]])
|
|
307
|
+
>>> result = ellipsoidify_dots(binary_dots)
|
|
308
|
+
>>> print(result)
|
|
309
|
+
[[0 0 0 0]
|
|
310
|
+
[0 1 0 0]
|
|
311
|
+
[0 0 0 0]]
|
|
312
|
+
"""
|
|
313
|
+
# Check if the image is 3D
|
|
314
|
+
if len(binary_dots.shape) == 3:
|
|
315
|
+
# If image is 3D, loop over all images and apply ellipsoidify_dots to each channel
|
|
316
|
+
for iii, img_2D in enumerate(binary_dots):
|
|
317
|
+
binary_dots[iii] = ellipsoidify_dots(img_2D)
|
|
318
|
+
return binary_dots
|
|
319
|
+
|
|
320
|
+
# Label the dots in the binary image
|
|
321
|
+
lab_dots = label(binary_dots, connectivity=None, background=0)
|
|
322
|
+
rps_dots = regionprops(lab_dots)
|
|
323
|
+
|
|
324
|
+
# Iterate over each labeled region (dot)
|
|
325
|
+
for region in rps_dots:
|
|
326
|
+
centroid = region.centroid
|
|
327
|
+
bbox = region.bbox
|
|
328
|
+
# Draw an ellipse that fits the dot
|
|
329
|
+
rr, cc = ellipse(centroid[0], centroid[1], r_radius=abs(bbox[0] - bbox[2]) / 2,
|
|
330
|
+
c_radius=abs(bbox[1] - bbox[3]) / 2, shape=binary_dots.shape)
|
|
331
|
+
binary_dots[rr, cc] = binary_dots.max()
|
|
332
|
+
|
|
333
|
+
return binary_dots
|
|
334
|
+
# should also work for 3D even though the 3D version is not super elegant
|
|
335
|
+
|
|
336
|
+
def tst_all_auto_thresholds(img):
|
|
337
|
+
# Apply all thresholding methods and display results
|
|
338
|
+
fig, ax = filters.try_all_threshold(img, figsize=(8, 5), verbose=False)
|
|
339
|
+
|
|
340
|
+
# Show plot
|
|
341
|
+
plt.show()
|
|
342
|
+
|
|
343
|
+
def yen_thresholding(img,return_threshold=False):
|
|
344
|
+
# Apply Yen thresholding method
|
|
345
|
+
thresh = filters.threshold_yen(img)
|
|
346
|
+
if return_threshold:
|
|
347
|
+
return thresh
|
|
348
|
+
# Apply threshold to image
|
|
349
|
+
return apply_threshold(img, thresh)
|
|
350
|
+
|
|
351
|
+
def triangle_threshold(img, return_threshold=False):
|
|
352
|
+
# Apply triangle thresholding method
|
|
353
|
+
thresh = filters.threshold_triangle(img)
|
|
354
|
+
if return_threshold:
|
|
355
|
+
return thresh
|
|
356
|
+
# Apply threshold to image
|
|
357
|
+
return apply_threshold(img, thresh)
|
|
358
|
+
|
|
359
|
+
def isodata_threshold(img, return_threshold=False):
|
|
360
|
+
# Apply triangle thresholding method
|
|
361
|
+
thresh = filters.threshold_isodata(img)
|
|
362
|
+
# thresh = threshold_otsu(img)
|
|
363
|
+
if return_threshold:
|
|
364
|
+
return thresh
|
|
365
|
+
# Apply threshold to image
|
|
366
|
+
return apply_threshold(img, thresh)
|
|
367
|
+
|
|
368
|
+
def otsu_threshold(img, return_threshold=False):
|
|
369
|
+
# Apply triangle thresholding method
|
|
370
|
+
# thresh = filters.otsu_threshold(img)
|
|
371
|
+
thresh = threshold_otsu(img)
|
|
372
|
+
if return_threshold:
|
|
373
|
+
return thresh
|
|
374
|
+
# Apply threshold to image
|
|
375
|
+
return apply_threshold(img, thresh)
|
|
376
|
+
|
|
377
|
+
def mean_threshold(img, return_threshold=False):
|
|
378
|
+
# Apply triangle thresholding method
|
|
379
|
+
thresh = filters.threshold_mean(img)
|
|
380
|
+
if return_threshold:
|
|
381
|
+
return thresh
|
|
382
|
+
# Apply threshold to image
|
|
383
|
+
return apply_threshold(img, thresh)
|
|
384
|
+
|
|
385
|
+
def apply_threshold(img, threshold):
|
|
386
|
+
# Apply threshold to image
|
|
387
|
+
binary = img > threshold
|
|
388
|
+
return binary
|
|
389
|
+
|
|
390
|
+
def smart_threshold_above(img,max_fraction, increment=0.01):
|
|
391
|
+
norm = np.copy(img)
|
|
392
|
+
factor = norm.max()
|
|
393
|
+
norm= norm/norm.max()
|
|
394
|
+
# for vvv in range(0,1,increment):
|
|
395
|
+
threshold = 1.
|
|
396
|
+
while threshold-increment>0.:
|
|
397
|
+
if np.count_nonzero(norm>=threshold)/img.size >= max_fraction:
|
|
398
|
+
return threshold*factor
|
|
399
|
+
threshold-=increment
|
|
400
|
+
|
|
288
401
|
|
|
289
402
|
if __name__ == '__main__':
|
|
290
|
-
|
|
403
|
+
from batoolset.img import Img
|
|
404
|
+
img =Img('/E/Sample_images/cells_escaping_silencing_test_count/Apotome/MAX_IP-ApoTome-01.tif')
|
|
405
|
+
# img =Img('/E/Sample_images/cells_escaping_silencing_test_count/R1-14,5kb T2A DsRed X2 TgA/R1-14,5kb T2A DsRed X2 TgA 0004/wing_deep.tif')
|
|
406
|
+
# img =Img('/E/Sample_images/cells_escaping_silencing_test_count/HT 14,5kbT2ADsRed/A5 No Wari 14,5T2A DsRed X1 Female 0001/wing_deep.tif')
|
|
407
|
+
print(smart_threshold_above(img, 0.36))
|
|
@@ -21,7 +21,7 @@ def sorting_key(obj):
|
|
|
21
21
|
return ('free','relative') # if the object does not have a position assume it obeys free/relative positioning
|
|
22
22
|
|
|
23
23
|
def groupby_position(objects):
|
|
24
|
-
from batoolset.
|
|
24
|
+
from batoolset.drawings.shapes.txt2d import TAText2D
|
|
25
25
|
if isinstance(objects, TAText2D):
|
|
26
26
|
objects = [objects]
|
|
27
27
|
# Sort the objects based on their positions
|
|
@@ -6,8 +6,8 @@ from qtpy.QtGui import QTransform,QPolygon
|
|
|
6
6
|
from qtpy.QtWidgets import QApplication, QWidget
|
|
7
7
|
from qtpy.QtGui import QPainter, QPen, QBrush, QColor
|
|
8
8
|
from qtpy.QtCore import Qt, QPointF, QRectF,QPoint
|
|
9
|
-
from batoolset.
|
|
10
|
-
from batoolset.
|
|
9
|
+
from batoolset.drawings.shapes.polyline2d import PolyLine2D
|
|
10
|
+
from batoolset.drawings.shapes.transform2D import get_centroid, get_points, Transform2D
|
|
11
11
|
|
|
12
12
|
def compute_translation_corrections(img1, minimal_return=True):
|
|
13
13
|
old_scale = img1.scale
|
|
@@ -4,10 +4,10 @@ import os
|
|
|
4
4
|
from qtpy import QtCore
|
|
5
5
|
from qtpy.QtCore import QPointF, Qt
|
|
6
6
|
from qtpy.QtGui import QPainter, QBrush, QPen, QImage, QColor
|
|
7
|
-
# from batoolset.
|
|
7
|
+
# from batoolset.drawings.shapes.polygon2d import Polygon2D
|
|
8
8
|
# from qtpy.Qt
|
|
9
9
|
# from qtpy.Qt import (QPaintEngine, QPaintDevice, QTransform, QBrush)
|
|
10
|
-
from batoolset.
|
|
10
|
+
from batoolset.drawings.shapes.polygon2d import Polygon2D
|
|
11
11
|
|
|
12
12
|
from batoolset.tools.logger import TA_logger
|
|
13
13
|
logger = TA_logger()
|
|
@@ -3,7 +3,7 @@ from batoolset.settings.global_settings import set_UI # set the UI to qtpy
|
|
|
3
3
|
set_UI()
|
|
4
4
|
import matplotlib.pyplot as plt
|
|
5
5
|
import numpy as np
|
|
6
|
-
# from batoolset.
|
|
6
|
+
# from batoolset.drawings.shapes.vectorgraphics2d import VectorGraphics2D
|
|
7
7
|
from batoolset.img import Img
|
|
8
8
|
from batoolset.lists.tools import move_left, move_right, is_iterable
|
|
9
9
|
import random
|
|
@@ -11,16 +11,16 @@ import sys
|
|
|
11
11
|
import traceback
|
|
12
12
|
# this will replace cols or rows and will be able to do both but more flexibly
|
|
13
13
|
from timeit import default_timer as timer
|
|
14
|
-
from batoolset.
|
|
15
|
-
from batoolset.
|
|
16
|
-
from batoolset.
|
|
17
|
-
from batoolset.
|
|
14
|
+
from batoolset.serializations.tools import create_objects_from_dict
|
|
15
|
+
from batoolset.drawings.shapes.image2d import Image2D
|
|
16
|
+
from batoolset.drawings.shapes.rectangle2d import Rectangle2D
|
|
17
|
+
from batoolset.drawings.shapes.txt2d import TAText2D
|
|
18
18
|
from qtpy.QtCore import QRectF, QSizeF,QPointF
|
|
19
19
|
from qtpy.QtWidgets import QApplication
|
|
20
20
|
from qtpy.QtGui import QPainter, QColor, QBrush, QPen, QTransform
|
|
21
21
|
from batoolset.figure.alignment import pack2, align2, align_positions
|
|
22
22
|
from batoolset.tests.tools import are_ratios_almost_equal
|
|
23
|
-
from batoolset.
|
|
23
|
+
from batoolset.drawings.shapes.compute_optimal_size_all_merged import resize_rects_within_total_width, \
|
|
24
24
|
resize_rects_within_total_height
|
|
25
25
|
|
|
26
26
|
ORIENTATIONS = ["X","Y"] #,"grid"
|
|
@@ -5,15 +5,15 @@ from batoolset.luts.lut_minimal_test import PaletteCreator, list_available_luts,
|
|
|
5
5
|
from batoolset.files.tools import smart_name_parser
|
|
6
6
|
from batoolset.files.tools import get_consolidated_filename_from_parent
|
|
7
7
|
from batoolset.strings.tools import reload_string_list, is_string_a_list_string, find_letter_before_h
|
|
8
|
-
from batoolset.
|
|
9
|
-
from batoolset.
|
|
8
|
+
from batoolset.drawings.shapes.automated_alignment_drawing_refactored import compute_translation_corrections
|
|
9
|
+
from batoolset.pyqts.tools import check_antialiasing, copy_transform_without_rotation, rotate_image, copy_scale_only, \
|
|
10
10
|
copy_scale_and_translation_only, crop_image, get_shape_after_rotation_and_crop, tst_translation
|
|
11
|
-
from batoolset.
|
|
12
|
-
from batoolset.
|
|
11
|
+
from batoolset.serializations.tools import create_objects_from_dict, object_to_xml
|
|
12
|
+
from batoolset.matplolibs.tools import get_fig_rect
|
|
13
13
|
import os
|
|
14
14
|
import traceback
|
|
15
|
-
from batoolset.
|
|
16
|
-
from batoolset.
|
|
15
|
+
from batoolset.drawings.shapes.Position import groupby_position, Position
|
|
16
|
+
from batoolset.drawings.shapes.rectangle2d import Rectangle2D
|
|
17
17
|
import numpy as np
|
|
18
18
|
import matplotlib.pyplot as plt
|
|
19
19
|
from qtpy import QtGui
|
|
@@ -21,12 +21,12 @@ from qtpy.QtGui import QPainter, QColor, QBrush, QPen, QTransform, QFontMetrics,
|
|
|
21
21
|
from qtpy.QtCore import Qt
|
|
22
22
|
from qtpy.QtSvg import QSvgGenerator
|
|
23
23
|
from qtpy.QtSvg import QSvgRenderer
|
|
24
|
-
from batoolset.
|
|
25
|
-
from batoolset.
|
|
24
|
+
from batoolset.drawings.shapes.line2d import Line2D
|
|
25
|
+
from batoolset.drawings.shapes.point2d import Point2D
|
|
26
26
|
from batoolset.figure.alignment import alignRight, alignLeft, alignTop, alignBottom, alignCenterH, alignCenterV, packY, \
|
|
27
27
|
packX, packYreverse, pack2, packing_modes
|
|
28
|
-
from batoolset.
|
|
29
|
-
from batoolset.
|
|
28
|
+
from batoolset.drawings.shapes.scalebar import ScaleBar
|
|
29
|
+
from batoolset.drawings.shapes.txt2d import TAText2D
|
|
30
30
|
|
|
31
31
|
from batoolset.img import Img, toQimage, RGB_to_BGR, guess_dimensions, max_proj, min_proj, avg_proj
|
|
32
32
|
from qtpy.QtCore import QRectF, QPointF, QSize, QRect
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from batoolset.settings.global_settings import set_UI # set the UI to qtpy
|
|
2
2
|
set_UI()
|
|
3
3
|
import os
|
|
4
|
-
from batoolset.
|
|
4
|
+
from batoolset.drawings.shapes.tools import rect_intersects_polygon, create_rect_centered_at, qpolygonf_to_list
|
|
5
5
|
from qtpy import QtCore
|
|
6
6
|
from qtpy.QtCore import QPointF, Qt
|
|
7
7
|
from qtpy.QtGui import QPolygonF, QTransform
|
|
@@ -6,7 +6,7 @@ from qtpy.QtCore import QPointF, Qt
|
|
|
6
6
|
from qtpy.QtGui import QPainter, QBrush, QPen, QImage, QColor, QPolygonF
|
|
7
7
|
# from qtpy.Qt
|
|
8
8
|
# from qtpy.Qt import (QPaintEngine, QPaintDevice, QTransform, QBrush)
|
|
9
|
-
from batoolset.
|
|
9
|
+
from batoolset.drawings.shapes.polygon2d import Polygon2D
|
|
10
10
|
|
|
11
11
|
from batoolset.tools.logger import TA_logger
|
|
12
12
|
|
|
@@ -3,9 +3,9 @@ set_UI()
|
|
|
3
3
|
from qtpy.QtGui import QTransform,QPen, QColor
|
|
4
4
|
from qtpy.QtCore import QPointF
|
|
5
5
|
from batoolset.figure.alignment import pack2, align2, align_positions
|
|
6
|
-
from batoolset.
|
|
7
|
-
from batoolset.
|
|
8
|
-
from batoolset.
|
|
6
|
+
from batoolset.drawings.shapes.rectangle2d import Rectangle2D
|
|
7
|
+
from batoolset.drawings.shapes.txt2d import TAText2D
|
|
8
|
+
from batoolset.drawings.shapes.Position import Position
|
|
9
9
|
# logger
|
|
10
10
|
from batoolset.tools.logger import TA_logger
|
|
11
11
|
|
{batoolset-0.1.7/batoolset/draw → batoolset-0.1.8/batoolset/drawings}/shapes/serializablefont.py
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
from batoolset.
|
|
2
|
-
from batoolset.
|
|
3
|
-
from batoolset.
|
|
1
|
+
from batoolset.drawings.shapes.Position import Position
|
|
2
|
+
from batoolset.drawings.shapes.txt2d import TAText2D
|
|
3
|
+
from batoolset.pyqts.tools import get_html_text_with_font
|
|
4
4
|
from batoolset.settings.global_settings import set_UI # set the UI to qtpy
|
|
5
5
|
set_UI()
|
|
6
6
|
from qtpy.QtGui import QFont
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import os
|
|
2
|
-
|
|
3
|
-
from batoolset.draw.shapes.rectangle2d import Rectangle2D
|
|
4
2
|
from batoolset.settings.global_settings import set_UI # set the UI to qtpy
|
|
5
3
|
set_UI()
|
|
4
|
+
from batoolset.drawings.shapes.rectangle2d import Rectangle2D
|
|
6
5
|
from qtpy.QtCore import QPointF
|
|
7
6
|
|
|
8
|
-
from batoolset.
|
|
7
|
+
from batoolset.drawings.shapes.rect2d import Rect2D
|
|
9
8
|
|
|
10
9
|
from batoolset.tools.logger import TA_logger
|
|
11
10
|
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
from batoolset.settings.global_settings import set_UI # set the UI to qtpy
|
|
2
2
|
set_UI()
|
|
3
|
-
from batoolset.
|
|
4
|
-
from batoolset.
|
|
5
|
-
from batoolset.
|
|
3
|
+
from batoolset.drawings.shapes.freehand2d import Freehand2D
|
|
4
|
+
from batoolset.drawings.shapes.polyline2d import PolyLine2D
|
|
5
|
+
from batoolset.serializations.tools import clone_object
|
|
6
6
|
from qtpy.QtCore import QRectF, QPointF,QPoint
|
|
7
7
|
from qtpy.QtGui import QTransform, QPolygonF,QPolygon
|
|
8
8
|
import numpy as np
|
|
9
|
-
from batoolset.
|
|
10
|
-
from batoolset.
|
|
11
|
-
from batoolset.
|
|
12
|
-
from batoolset.
|
|
13
|
-
from batoolset.
|
|
14
|
-
from batoolset.
|
|
9
|
+
from batoolset.drawings.shapes import polyline2d, freehand2d
|
|
10
|
+
from batoolset.drawings.shapes.ellipse2d import Ellipse2D
|
|
11
|
+
from batoolset.drawings.shapes.line2d import Line2D
|
|
12
|
+
from batoolset.drawings.shapes.point2d import Point2D
|
|
13
|
+
from batoolset.drawings.shapes.polygon2d import Polygon2D
|
|
14
|
+
from batoolset.drawings.shapes.rectangle2d import Rectangle2D
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
def translated(shape, point):
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# TODO allow text for be written at an angle and determine it size then
|
|
2
2
|
from batoolset.settings.global_settings import set_UI # set the UI to qtpy
|
|
3
3
|
set_UI()
|
|
4
|
-
from batoolset.
|
|
5
|
-
from batoolset.
|
|
6
|
-
from batoolset.
|
|
4
|
+
from batoolset.pyqts.tools import get_painter_transform_and_rotation
|
|
5
|
+
from batoolset.drawings.shapes.textorientation import get_angle
|
|
6
|
+
from batoolset.drawings.shapes.Position import Position
|
|
7
7
|
from qtpy import QtCore
|
|
8
8
|
from qtpy.QtCore import QRect
|
|
9
9
|
from qtpy.QtGui import QTextDocument, QTextOption
|
|
@@ -13,7 +13,7 @@ import sys
|
|
|
13
13
|
from qtpy import QtGui
|
|
14
14
|
from qtpy.QtCore import Qt
|
|
15
15
|
from qtpy.QtWidgets import QApplication
|
|
16
|
-
from batoolset.
|
|
16
|
+
from batoolset.drawings.shapes.rectangle2d import Rectangle2D
|
|
17
17
|
# log errors
|
|
18
18
|
from batoolset.tools.logger import TA_logger
|
|
19
19
|
logger = TA_logger()
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import os
|
|
4
4
|
from batoolset.settings.global_settings import set_UI # set the UI to qtpy
|
|
5
5
|
set_UI()
|
|
6
|
-
from batoolset.
|
|
6
|
+
from batoolset.drawings.shapes.rect2d import Rect2D
|
|
7
7
|
from qtpy.QtCore import QPointF, QRectF
|
|
8
8
|
# logger
|
|
9
9
|
from batoolset.tools.logger import TA_logger
|
|
@@ -220,7 +220,7 @@ class col(Rect2D):
|
|
|
220
220
|
painter.restore()
|
|
221
221
|
|
|
222
222
|
if __name__ == '__main__':
|
|
223
|
-
from batoolset.
|
|
223
|
+
from batoolset.drawings.shapes.image2d import Image2D # KEEP Really required to avoid circular imports
|
|
224
224
|
|
|
225
225
|
img1 = Image2D('/E/Sample_images/counter/00.png')
|
|
226
226
|
img2 = Image2D('/E/Sample_images/counter/01.png')
|
{batoolset-0.1.7/batoolset/draw → batoolset-0.1.8/batoolset/drawings}/widgets/image_group.py
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import os
|
|
2
2
|
from batoolset.settings.global_settings import set_UI # set the UI to qtpy
|
|
3
3
|
set_UI()
|
|
4
|
-
from batoolset.
|
|
4
|
+
from batoolset.drawings.shapes.rect2d import Rect2D
|
|
5
5
|
from qtpy.QtCore import QPointF, QRectF
|
|
6
6
|
from deprecated import deprecated
|
|
7
7
|
# logger
|
{batoolset-0.1.7/batoolset/draw → batoolset-0.1.8/batoolset/drawings}/widgets/image_organizer.py
RENAMED
|
@@ -64,7 +64,7 @@ def packY(things_to_align, space=3):
|
|
|
64
64
|
img = things_to_align[i]
|
|
65
65
|
print('2',img)
|
|
66
66
|
if isinstance(img, list):
|
|
67
|
-
from batoolset.
|
|
67
|
+
from batoolset.drawings.widgets.image_group import group
|
|
68
68
|
img = group(*img)
|
|
69
69
|
# should I create a row of objects in fact I need a group and move everything with that --> TODO --> maybe
|
|
70
70
|
if i != 0:
|
|
@@ -5,7 +5,7 @@ from qtpy.QtCore import QRect, QTimer
|
|
|
5
5
|
from qtpy.QtGui import QPixmap
|
|
6
6
|
from qtpy.QtWidgets import QWidget
|
|
7
7
|
|
|
8
|
-
from batoolset.
|
|
8
|
+
from batoolset.drawings.widgets.vectorial import VectorialDrawPane
|
|
9
9
|
from qtpy.QtWidgets import QMenu, QApplication
|
|
10
10
|
from qtpy import QtCore, QtGui
|
|
11
11
|
|
|
@@ -3,22 +3,21 @@
|
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
import os
|
|
6
|
-
|
|
7
|
-
from batoolset.draw.shapes.txt2d import TAText2D
|
|
8
|
-
from batoolset.pyqt.tools import getCtrlModifier
|
|
9
6
|
from batoolset.settings.global_settings import set_UI # set the UI to qtpy
|
|
10
7
|
set_UI()
|
|
8
|
+
from batoolset.drawings.shapes.txt2d import TAText2D
|
|
9
|
+
from batoolset.pyqts.tools import getCtrlModifier
|
|
11
10
|
from qtpy import QtCore
|
|
12
|
-
from batoolset.
|
|
13
|
-
from batoolset.
|
|
14
|
-
from batoolset.
|
|
15
|
-
from batoolset.
|
|
16
|
-
from batoolset.
|
|
17
|
-
from batoolset.
|
|
18
|
-
from batoolset.
|
|
19
|
-
from batoolset.
|
|
20
|
-
from batoolset.
|
|
21
|
-
from batoolset.
|
|
11
|
+
from batoolset.drawings.shapes.polygon2d import Polygon2D
|
|
12
|
+
from batoolset.drawings.shapes.line2d import Line2D
|
|
13
|
+
from batoolset.drawings.shapes.rect2d import Rect2D
|
|
14
|
+
from batoolset.drawings.shapes.square2d import Square2D
|
|
15
|
+
from batoolset.drawings.shapes.ellipse2d import Ellipse2D
|
|
16
|
+
from batoolset.drawings.shapes.circle2d import Circle2D
|
|
17
|
+
from batoolset.drawings.shapes.freehand2d import Freehand2D
|
|
18
|
+
from batoolset.drawings.shapes.point2d import Point2D
|
|
19
|
+
from batoolset.drawings.shapes.polyline2d import PolyLine2D
|
|
20
|
+
from batoolset.drawings.shapes.image2d import Image2D
|
|
22
21
|
from qtpy.QtCore import QPointF, QRectF
|
|
23
22
|
from batoolset.tools.logger import TA_logger # logging
|
|
24
23
|
logger = TA_logger()
|
|
@@ -9,7 +9,7 @@ set_UI()
|
|
|
9
9
|
from deprecated import deprecated
|
|
10
10
|
from qtpy.QtCore import QRectF
|
|
11
11
|
|
|
12
|
-
from batoolset.
|
|
12
|
+
from batoolset.drawings.shapes.point2d import Point2D
|
|
13
13
|
from batoolset.tools.logger import TA_logger
|
|
14
14
|
import numpy as np
|
|
15
15
|
|
|
@@ -231,7 +231,7 @@ packing_modes = ['X','Y', '-X', '-Y']
|
|
|
231
231
|
# last = img.x() + img.width(all=True)
|
|
232
232
|
|
|
233
233
|
def pack2(space=3, mode=packing_modes[0], extra_border_mode=False, *objects_to_pack): # a cleaned and better version of packX
|
|
234
|
-
from batoolset.
|
|
234
|
+
from batoolset.drawings.shapes.image2d import Image2D
|
|
235
235
|
|
|
236
236
|
# check position
|
|
237
237
|
|
|
@@ -24,9 +24,9 @@ set_UI()# panel1D --> orientation --> hor/ver
|
|
|
24
24
|
# panel2D --> more stuff and same size required
|
|
25
25
|
import random
|
|
26
26
|
|
|
27
|
-
from batoolset.
|
|
28
|
-
from batoolset.
|
|
29
|
-
from batoolset.
|
|
27
|
+
from batoolset.drawings.shapes.image2d import Image2D
|
|
28
|
+
from batoolset.drawings.shapes.point2d import Point2D
|
|
29
|
+
from batoolset.drawings.shapes.rect2d import Rect2D
|
|
30
30
|
from qtpy.QtCore import QPointF, QRectF
|
|
31
31
|
# from sympy import nsolve, exp, Symbol
|
|
32
32
|
# logger
|
|
@@ -225,7 +225,7 @@ def get_common_scaling_factor_taking_incompressibility_into_account(dimensions_i
|
|
|
225
225
|
return common_scaling
|
|
226
226
|
|
|
227
227
|
def get_master_bounds2(group_of_shapes):
|
|
228
|
-
# from batoolset.
|
|
228
|
+
# from batoolset.drawings.shapes.group import Group
|
|
229
229
|
bounds = QRectF()
|
|
230
230
|
|
|
231
231
|
if group_of_shapes is None:
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
# can one use words for that
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
from batoolset.
|
|
11
|
+
from batoolset.drawings.shapes.image2d import Image2D
|
|
12
12
|
from batoolset.figure.alignment import packX
|
|
13
13
|
from batoolset.figure.column import Column
|
|
14
14
|
# from batoolset.figure.fig_tools import preview, get_common_scaling_factor
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
import os
|
|
32
32
|
from batoolset.settings.global_settings import set_UI # set the UI to qtpy
|
|
33
33
|
set_UI()
|
|
34
|
-
from batoolset.
|
|
34
|
+
from batoolset.drawings.shapes.rect2d import Rect2D
|
|
35
35
|
from qtpy.QtCore import QPointF, QRectF
|
|
36
36
|
|
|
37
37
|
# from batoolset.figure.fig_tools import preview
|
|
@@ -337,10 +337,10 @@ class Panel(Rect2D):
|
|
|
337
337
|
# logger.debug('not enough images so adding empty images with same size as last entry')
|
|
338
338
|
# row += Image2D(width=last_size.width(), height=last_size.height())
|
|
339
339
|
if row is not None and not len(row) == 0:
|
|
340
|
-
from batoolset.
|
|
340
|
+
from batoolset.drawings.widgets.image_organizer import packX
|
|
341
341
|
# packing seems correct then need align top
|
|
342
342
|
packX(row, self.space) # ça ça marche
|
|
343
|
-
from batoolset.
|
|
343
|
+
from batoolset.drawings.widgets.image_organizer import alignTop
|
|
344
344
|
alignTop(row) # ça ça marche
|
|
345
345
|
# seems ok too
|
|
346
346
|
|
|
@@ -355,10 +355,10 @@ class Panel(Rect2D):
|
|
|
355
355
|
print('fig len', len(fig)) # --> ok
|
|
356
356
|
# logger.error('empty panel created there has to be an error somewhere')
|
|
357
357
|
|
|
358
|
-
from batoolset.
|
|
358
|
+
from batoolset.drawings.widgets.image_organizer import packY
|
|
359
359
|
# not necessarily that by the way
|
|
360
360
|
# packY(fig, space=self.space)
|
|
361
|
-
from batoolset.
|
|
361
|
+
from batoolset.drawings.widgets.image_organizer import sameHeight
|
|
362
362
|
|
|
363
363
|
# required
|
|
364
364
|
|
|
@@ -367,7 +367,7 @@ class Panel(Rect2D):
|
|
|
367
367
|
sameHeight(self.images, space=self.space) # bug here
|
|
368
368
|
print('arfter same height', self.boundingRect())
|
|
369
369
|
|
|
370
|
-
from batoolset.
|
|
370
|
+
from batoolset.drawings.widgets.image_group import group
|
|
371
371
|
if self.width() != 0:
|
|
372
372
|
group(*self.images).setToWidth(self.width())
|
|
373
373
|
if self.height() !=0:
|
|
@@ -412,7 +412,7 @@ class Panel(Rect2D):
|
|
|
412
412
|
# maybe bug is just because of not properly handling set to with and set to height
|
|
413
413
|
|
|
414
414
|
# why the hell do I have a figure in panel really need to recode that
|
|
415
|
-
from batoolset.
|
|
415
|
+
from batoolset.drawings.widgets.col import col
|
|
416
416
|
fig = col(space=self.space)
|
|
417
417
|
self.rows=[]
|
|
418
418
|
|
|
@@ -502,7 +502,7 @@ class Panel(Rect2D):
|
|
|
502
502
|
# return extra_space
|
|
503
503
|
|
|
504
504
|
if __name__ == '__main__':
|
|
505
|
-
from batoolset.
|
|
505
|
+
from batoolset.drawings.shapes.image2d import Image2D # KEEP Really required to avoid circular imports
|
|
506
506
|
|
|
507
507
|
img0 = Image2D('/E/Sample_images/counter/00.png')
|
|
508
508
|
# img0.setLetter(TAText2D(
|