InsightSoftwareConsortium / InsightSoftwareConsortium/itkwidgets
geometris overlay display overextents to the wrong slices
- Lingua principale
- Python
- Stelle
- 624
- Fork
- 83
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
hi,
as shown in the gif, the cube geometries overextent to the slices beyond its original range.
ps: notice on y+z plane, it's extented to the direction **larger** than supposed to, while on x plane, it's extented to slices smaller than supposed to.

minimum code to replicate:
```python
# helper functions
import vtk
def pts_to_cube(pos, radius=2):
"""
covert pos to cube (vtkPolyData) for visulization
"""
# x = array of 8 3-tuples of float representing the vertices of a cube:
pts = [(0.0, 0.0, 0.0), (1.0, 0.0, 0.0), (1.0, 1.0, 0.0), (0.0, 1.0, 0.0),
(0.0, 0.0, 1.0), (1.0, 0.0, 1.0), (1.0, 1.0, 1.0), (0.0, 1.0, 1.0)]
pts = [np.array(pt)*radius * 2 + pos - radius for pt in pts]
faces = [(0, 1, 2, 3), (4, 5, 6, 7), (0, 1, 5, 4),
(1, 2, 6, 5), (2, 3, 7, 6), (3, 0, 4, 7)]
return np_to_polydata(pts, faces)
def np_to_polydata(pts, faces):
"""
convert np.points (+ faces) to vtk.polydata
"""
polyData = vtk.vtkPolyData()
numberOfPoints = len(pts)
points = vtk.vtkPoints()
for x, y, z in pts:
points.InsertNextPoint(x, y, z)
polyData.SetPoints(points)
polys = vtk.vtkCellArray()
for indices in faces:
polys.InsertNextCell(len(indices))
for ind in indices:
polys.InsertCellPoint(ind)
polyData.SetPolys(polys)
return polyData
# actual jupyter codes
import numpy as np
from itkwidgets import view
img_size = 32
pts_num = 3
img = np.zeros([img_size]*3)
pts_list = (np.random.random((pts_num, 3))*img_size).astype(int)
img[tuple(pts_list[:, ::-1].T)] = 1
cubes = [pts_to_cube(pts) for pts in pts_list]
view(img, geometries=cubes)
```
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Direzione di ricerca
Esegui la riproduzione minima in Python dell’issue con itkwidgets.view, gli helper per la geometria di vtk e l’immagine generata. Ispeziona il comportamento della sovrapposizione della geometria sui piani di sezione x e y+z; è completato quando i cubi rimangono all’interno del loro intervallo di sezione originale e non si estendono nella direzione errata.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- jupyter, python
- Ambito
- data-visualization
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100