scikit-surgeryvtk 2.4.0__tar.gz → 2.5.2__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.
Files changed (75) hide show
  1. {scikit_surgeryvtk-2.4.0/scikit_surgeryvtk.egg-info → scikit_surgeryvtk-2.5.2}/PKG-INFO +1 -1
  2. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2/scikit_surgeryvtk.egg-info}/PKG-INFO +1 -1
  3. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/sksurgeryvtk/_version.py +3 -3
  4. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/sksurgeryvtk/widgets/vtk_base_stereo_window.py +25 -2
  5. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/sksurgeryvtk/widgets/vtk_interlaced_stereo_window.py +6 -4
  6. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/LICENSE +0 -0
  7. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/MANIFEST.in +0 -0
  8. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/README.rst +0 -0
  9. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/scikit_surgeryvtk.egg-info/SOURCES.txt +0 -0
  10. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/scikit_surgeryvtk.egg-info/dependency_links.txt +0 -0
  11. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/scikit_surgeryvtk.egg-info/requires.txt +0 -0
  12. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/scikit_surgeryvtk.egg-info/top_level.txt +0 -0
  13. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/setup.cfg +0 -0
  14. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/setup.py +0 -0
  15. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/sksurgeryvtk/__init__.py +0 -0
  16. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/sksurgeryvtk/camera/__init__.py +0 -0
  17. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/sksurgeryvtk/camera/vtk_camera_model.py +0 -0
  18. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/sksurgeryvtk/models/__init__.py +0 -0
  19. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/sksurgeryvtk/models/outline_render.py +0 -0
  20. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/sksurgeryvtk/models/surface_model_loader.py +0 -0
  21. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/sksurgeryvtk/models/voxelise.py +0 -0
  22. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/sksurgeryvtk/models/vtk_base_actor.py +0 -0
  23. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/sksurgeryvtk/models/vtk_base_model.py +0 -0
  24. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/sksurgeryvtk/models/vtk_cylinder_model.py +0 -0
  25. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/sksurgeryvtk/models/vtk_grid_model.py +0 -0
  26. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/sksurgeryvtk/models/vtk_image_model.py +0 -0
  27. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/sksurgeryvtk/models/vtk_point_model.py +0 -0
  28. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/sksurgeryvtk/models/vtk_sphere_model.py +0 -0
  29. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/sksurgeryvtk/models/vtk_surface_model.py +0 -0
  30. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/sksurgeryvtk/models/vtk_surface_model_directory_loader.py +0 -0
  31. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/sksurgeryvtk/models/vtk_tube_model.py +0 -0
  32. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/sksurgeryvtk/text/__init__.py +0 -0
  33. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/sksurgeryvtk/text/text_overlay.py +0 -0
  34. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/sksurgeryvtk/utils/__init__.py +0 -0
  35. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/sksurgeryvtk/utils/matrix_utils.py +0 -0
  36. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/sksurgeryvtk/utils/platform_utils.py +0 -0
  37. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/sksurgeryvtk/utils/polydata_utils.py +0 -0
  38. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/sksurgeryvtk/utils/projection_utils.py +0 -0
  39. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/sksurgeryvtk/widgets/__init__.py +0 -0
  40. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/sksurgeryvtk/widgets/vtk_base_calibrated_window.py +0 -0
  41. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/sksurgeryvtk/widgets/vtk_lus_simulator.py +0 -0
  42. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/sksurgeryvtk/widgets/vtk_overlay_window.py +0 -0
  43. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/sksurgeryvtk/widgets/vtk_rendering_generator.py +0 -0
  44. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/sksurgeryvtk/widgets/vtk_reslice_widget.py +0 -0
  45. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/sksurgeryvtk/widgets/vtk_stacked_stereo_window.py +0 -0
  46. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/sksurgeryvtk/widgets/vtk_zbuffer_window.py +0 -0
  47. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/tests/camera/__init__.py +0 -0
  48. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/tests/camera/test_liver_overlay.py +0 -0
  49. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/tests/camera/test_vtk_camera_model.py +0 -0
  50. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/tests/models/__init__.py +0 -0
  51. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/tests/models/test_surface_model_loader.py +0 -0
  52. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/tests/models/test_voxelise.py +0 -0
  53. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/tests/models/test_vtk_cylinder_model.py +0 -0
  54. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/tests/models/test_vtk_image_model.py +0 -0
  55. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/tests/models/test_vtk_point_model.py +0 -0
  56. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/tests/models/test_vtk_sphere_model.py +0 -0
  57. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/tests/models/test_vtk_surface_model.py +0 -0
  58. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/tests/models/test_vtk_surface_model_directory_loader.py +0 -0
  59. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/tests/models/test_vtk_tube_model.py +0 -0
  60. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/tests/models/test_vtk_unstructured_grid.py +0 -0
  61. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/tests/test_requirements.py +0 -0
  62. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/tests/utils/__init__.py +0 -0
  63. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/tests/utils/test_matrix_utills.py +0 -0
  64. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/tests/utils/test_polydata_utils.py +0 -0
  65. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/tests/utils/test_projection_utils.py +0 -0
  66. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/tests/widgets/__init__.py +0 -0
  67. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/tests/widgets/test_lus_simulator.py +0 -0
  68. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/tests/widgets/test_rendering_generator.py +0 -0
  69. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/tests/widgets/test_stereo_window.py +0 -0
  70. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/tests/widgets/test_vtk_overlay_window.py +0 -0
  71. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/tests/widgets/test_vtk_overlay_window_5_layers.py +0 -0
  72. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/tests/widgets/test_vtk_overlay_window_with_outlines.py +0 -0
  73. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/tests/widgets/test_vtk_reslice.py +0 -0
  74. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/tests/widgets/test_vtkzbuffer_window.py +0 -0
  75. {scikit_surgeryvtk-2.4.0 → scikit_surgeryvtk-2.5.2}/versioneer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: scikit-surgeryvtk
3
- Version: 2.4.0
3
+ Version: 2.5.2
4
4
  Summary: scikit-surgeryvtk uses VTK for Image Guided Surgery applications
5
5
  Home-page: https://github.com/SciKit-Surgery/scikit-surgeryvtk
6
6
  Author: Thomas Dowrick
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: scikit-surgeryvtk
3
- Version: 2.4.0
3
+ Version: 2.5.2
4
4
  Summary: scikit-surgeryvtk uses VTK for Image Guided Surgery applications
5
5
  Home-page: https://github.com/SciKit-Surgery/scikit-surgeryvtk
6
6
  Author: Thomas Dowrick
@@ -8,11 +8,11 @@ import json
8
8
 
9
9
  version_json = '''
10
10
  {
11
- "date": "2026-04-20T06:13:00+0100",
11
+ "date": "2026-06-19T09:16:00+0100",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "0422a88b01c027061aef20a450a63f3ba6100e3f",
15
- "version": "2.4.0"
14
+ "full-revisionid": "756bb9f83df23ce27561faab216f2481f0315161",
15
+ "version": "2.5.2"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18
 
@@ -5,6 +5,7 @@ Base class for vtk_interlaced_stereo_window.py and vtk_stacked_stereo_window.py
5
5
  """
6
6
 
7
7
  import abc
8
+ import numpy as np
8
9
  from PySide6 import QtWidgets
9
10
  from PySide6.QtWidgets import QSizePolicy
10
11
  import sksurgeryvtk.widgets.vtk_overlay_window as ow
@@ -66,7 +67,7 @@ class VTKBaseStereoWindow(QtWidgets.QWidget):
66
67
 
67
68
  def set_camera_matrices(self, left_camera_matrix, right_camera_matrix):
68
69
  """
69
- Sets both the left and right camera matrices.
70
+ Sets both the left and right camera matrices (i.e. the intrinsics).
70
71
 
71
72
  :param left_camera_matrix: numpy 3x3 ndarray containing fx, fy, cx, cy
72
73
  :param right_camera_matrix: numpy 3x3 ndarray containing fx, fy, cx, cy
@@ -76,7 +77,7 @@ class VTKBaseStereoWindow(QtWidgets.QWidget):
76
77
 
77
78
  def set_camera_poses(self, left_camera_to_world, right_camera_to_world):
78
79
  """
79
- Sets the pose of both the left and right camera.
80
+ Sets the pose of both the left and right camera (i.e. the extrinsics).
80
81
 
81
82
  :param left_camera_to_world: 4x4 numpy ndarray, rigid transform
82
83
  :param right_camera_to_world: 4x4 numpy ndarray, rigid transform
@@ -84,6 +85,28 @@ class VTKBaseStereoWindow(QtWidgets.QWidget):
84
85
  self.left_widget.set_camera_pose(left_camera_to_world)
85
86
  self.right_widget.set_camera_pose(right_camera_to_world)
86
87
 
88
+ def set_poses_from_left_camera(self, left_camera_to_world, left_to_right):
89
+ """
90
+ Sets the pose of both the left and right camera (i.e. the extrinsics).
91
+
92
+ :param left_camera_to_world: 4x4 numpy ndarray, rigid transform
93
+ :param left_to_right: 4x4 numpy ndarray, rigid transform
94
+ """
95
+ self.left_widget.set_camera_pose(left_camera_to_world)
96
+ self.right_widget.set_camera_pose(
97
+ np.linalg.inv(left_to_right @ np.linalg.inv(left_camera_to_world)))
98
+
99
+ def set_poses_from_right_camera(self, right_camera_to_world, right_to_left):
100
+ """
101
+ Sets the pose of both the left and right camera (i.e. the extrinsics).
102
+
103
+ :param right_camera_to_world: 4x4 numpy ndarray, rigid transform
104
+ :param right_to_left: 4x4 numpy ndarray, rigid transform
105
+ """
106
+ self.left_widget.set_camera_pose(
107
+ np.linalg.inv(right_to_left @ np.linalg.inv(right_camera_to_world)))
108
+ self.right_widget.set_camera_pose(right_camera_to_world)
109
+
87
110
  def add_vtk_models(self, models):
88
111
  """
89
112
  Add models to both left and right widgets.
@@ -154,11 +154,13 @@ class VTKInterlacedStereoWindow(bw.VTKBaseStereoWindow):
154
154
  self.right_widget.Render()
155
155
  self.right_widget.update()
156
156
 
157
- left = self.left_widget.convert_scene_to_numpy_array()
158
- right = self.right_widget.convert_scene_to_numpy_array()
157
+ left_rgb = self.left_widget.convert_scene_to_numpy_array()
158
+ right_rgb = self.right_widget.convert_scene_to_numpy_array()
159
159
 
160
- left_rescaled = cv2.resize(left, (0, 0), fx=1.0, fy=0.5)
161
- right_rescaled = cv2.resize(right, (0, 0), fx=1.0, fy=0.5)
160
+ left_rescaled_rgb = cv2.resize(left_rgb, (0, 0), fx=1.0, fy=0.5)
161
+ left_rescaled = cv2.cvtColor(left_rescaled_rgb, cv2.COLOR_RGB2BGR)
162
+ right_rescaled_rgb = cv2.resize(right_rgb, (0, 0), fx=1.0, fy=0.5)
163
+ right_rescaled = cv2.cvtColor(right_rescaled_rgb, cv2.COLOR_RGB2BGR)
162
164
 
163
165
  if self.left_is_top:
164
166
  interlaced = i.interlace_to_new(left_rescaled,