-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
4DCT / Sequential 3DCT #75
4DCT / Sequential 3DCT #75
Conversation
9a29e76
to
58d590a
Compare
Testing in release using BN00106
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
3D CT workflow operational
still need to
- test tracking of single pose
- load/process 4dct
- facilitate more than one (sequence) image/frame in volume node for vrg/cam placment
I am working on writing up a tutorial on how to do this. But if you want to get a head start, feel free to check out sequences within Slicer. As this PR mostly revolves around them. |
@NicerNewerCar (HNY!) I am going to evaluate how well the tracking of our 3dct radius tpm and mc1 results compare to previous methods- I'd also like to understand- within the SAM world, (and respective ct dicom from which tiff was generated- where the drrs are). I'd like both relative measures and absolute measures of how we did. When cameras are placed- how did you determine world origin? More specifically... the ..\Transforms\Origin2DICOMCenter.tfm To confirm: is this established from my 'reference' volume when we generate the partial volumes?
|
HNY! The
Been a while since I've looked at the code but I believe I am taking the average center of all the frames in the sequence to compute the centering transform. Hope this clears things up! |
Key variable form sequential 3d ct that need to be computed for agreement/ accuracy testing:
below are the stl surface files in neutral dicom cs Outputs from the Autoscoper tracking: Each 1x16 matrix (reshaped into 4x4) is a transform in SAM space of the partial volume to the optimized pose in flexion (as an example: from bvr wrist data: fle_rad - Copy.txt But when the stl (in flipped partial volume space) are trnasformed by the respective tra, instead of getting a plausable anatomical pose: (like in bvr wrist) The rad and mc1 are not similarly transformed. Has the tra meaning somehow changed? @NicerNewerCar |
58d590a
to
8292878
Compare
No it shouldn't have as we haven't done any modifications to the |
We modified the cameras.. and our tra is a function of the space it's
defined in..
Could that change somehow affect the outputs?
…On Tue, Feb 6, 2024 at 3:52 PM Anthony Lombardi ***@***.***> wrote:
Has the tra meaning somehow changed?
No it shouldn't have as we haven't done any modifications to the
save_tracking_results function within Autoscoper base
—
Reply to this email directly, view it on GitHub
<#75 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/APUUPFWZYM55LS23TWLCD4LYSKJY7AVCNFSM6AAAAABA5C7NNCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMZQG4ZTCNRWHE>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
--
-----------
Amy Morton, MSc
Sr. Research Engineer, Bioengineering Lab, Department of Orthopaedic
Research
The Warren Alpert Medical School of Brown University and Rhode Island
Hospital
1 Hoppin Street, CORO West, Ste. 404, Providence, RI 02903
|
When loading the flexion dicom (with spatial reference meta data) I visualizing voxels thresholded at 540 and slices at [0,0 50]. The stl from neutral are also plot in this space( and make sense that the green and magenta bones are more proximal . Transforming the fle ct data by Origin2DICOMCenter, visualized voxel thresh 540, slices ([0,0,0].. |
This may be due to two different coordinate systems LPS vs RAS. I believe the conversion between the two is flipping the X and Y directions. See this page in the Slicer docs for more information. |
Following up offline discussing with @NicerNewerCar: Since Similarly, if we are loading partial volume in Slicer, these should be done to account for the The Footnotes
|
It looks like I was unintentionally responsible for my own frustration.
Thanks to @mrainbow, I did not flip and the solve tra are as I would
expect.
…On Mon, Feb 12, 2024 at 1:59 PM Jean-Christophe Fillion-Robin < ***@***.***> wrote:
Following up offline discussing with @NicerNewerCar
<https://github.com/NicerNewerCar>:
Since IO.writeVolume (called from saveSubVolumesFromSegmentation) saves
the .tiff file as RAS1
<#m_5454748495840480277_m_-1028758568709792776_user-content-fn-1-9ffc4db928daba4604a2ba9182ea2a11>
using the itk::TIFFImageIO writer, we need to update generateConfigFile
so that it serializes the volumeFlip settings so that if the tiff is
loaded back it is loaded using the LPS convention. This will remove the
need for the user to guess and manually toggle the checkboxes.
Similarly, if we are loading partial volume in Slicer, these should be
done to account for the volumeFlip settings.
The volumeFlip settings should be considered as TIFFToLPS transform
Footnotes
1.
vtkMRMLVolumeArchetypeStorageNode::WriteDataInternal:
https://github.com/Slicer/Slicer/blob/59608a21fa8a575a6e887bae056fea4ac476b4c9/Libs/MRML/Core/vtkMRMLVolumeArchetypeStorageNode.cxx#L533-L732
↩
<#m_5454748495840480277_m_-1028758568709792776_user-content-fnref-1-9ffc4db928daba4604a2ba9182ea2a11>
—
Reply to this email directly, view it on GitHub
<#75 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/APUUPFQ3R2L4MRIL7WCIWSLYTJRBNAVCNFSM6AAAAABA5C7NNCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMZZGM2TCNRZGQ>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
--
-----------
Amy Morton, MSc
Sr. Research Engineer, Bioengineering Lab, Department of Orthopaedic
Research
The Warren Alpert Medical School of Brown University and Rhode Island
Hospital
1 Hoppin Street, CORO West, Ste. 404, Providence, RI 02903
|
The volume data did require a flipX, flipY to achieve the same spatial
overlay:
![image](https://github.com/BrownBiomechanics/SlicerAutoscoperM/assets/65619862/b1b4bbda-b51e-419a-9bf7-4cb363af1a6d)
The check for which we've never done (no known volume representain was prev available for bvr). This slight modification in prost processing is very reasonable.
|
Now that we are firmly rooted for a single pose- it's vital to pivot back to multiple poses ( as in #59 ). I can use the Sequences module to create a Sequences volume node of multiple 3d cts: I'm attempting to process automatic camera base vrgs, but the proces has thus far taken 20 mins and still going... Will update tmrw |
75b819d
to
71c20a0
Compare
eb231b0
to
76c2ffd
Compare
9439f9a
to
8ebc631
Compare
8ebc631
to
33df368
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Have students for testing- can we please push to main for extension index availability asap?
Will finalize and integrate today |
Revert previous commit as comments are not supported in json spec. See https://stackoverflow.com/questions/244777/can-comments-be-used-in-json/244858#244858
2ee59eb
to
d494a89
Compare
List of changes: ``` $ git shortlog 468324a92..8fe9748ab --no-merges Anthony Lombardi (1): ENH: Update schema to include cliping range ```
Related pull requests:
ToDo