Je suis en train de mettre en œuvre une méthode pour trier spatialement les tranches DICOM dans un volume. La façon dont je le fais est de trier par la position le long de la tranche normale. Ceci est calculé comme suit:la position de la tranche calculée est différente de celle du fichier DICOM
slice_normal = [0, 0, 0]
dir_cosines = ds[0x0020, 0x0037] # Direction cosines
slice_normal[0] = dir_cosines[1] * dir_cosines[5] - dir_cosines[2] * dir_cosines[4]
slice_normal[1] = dir_cosines[2] * dir_cosines[3] - dir_cosines[0] * dir_cosines[5]
slice_normal[2] = dir_cosines[0] * dir_cosines[4] - dir_cosines[1] * dir_cosines[3]
image_pos = ds[0x0020, 0x0032] # IPP
distance_along_normal = 0
for i in range(len(slice_normal)):
distance_along_normal += slice_normal[i] * image_pos[i]
Maintenant, cette valeur distance_along_normal
doit être égale à la slice location(0x0020, 0x1041)
, sauf dans mon cas, il a le signe opposé. L'ordre des tranches semble donc être inversé par rapport à ce qu'il devrait être. Je voudrais savoir quoi d'autre dois-je prendre en compte quelque chose d'autre pour calculer l'ordre de la tranche correcte.
Merci pour la réponse. Cela me rassure un peu. Cependant, comment les étiquettes anatomiques auraient-elles un sens si cet ordre est arbitraire? – Luca
Quelles étiquettes anatomiques avez-vous en tête - «Orientation du patient (0020,0020)»? Si c'est le cas, notez qu'il s'agit uniquement d'une orientation dans le plan. L'ordre des tranches n'influence pas l'orientation dans le plan. Par ailleurs, la valeur de «Orientation du patient» doit être cohérente avec la valeur de «Orientation de l'image (Patient)» si les deux valeurs sont présentes. –
Je voulais dire en faisant défiler dans la direction de la place ... comment peut-on déterminer si on va de la tête> orteil ou l'inverse si la commande n'est pas unique. – Luca