Segmented 3D model looks weird (TIFF to DICOM to STL)

Hi,

I load the dicom files of glove CT scan for my research and did segmentation process by setting threshold. However, 3D model looks weird and doesn’t look like glove. Is there anyone can help solve this issue? Thank you.


DICOM files: Glove 1_DICOM_Patcher.zip - Google Drive
3D Slicer files: Process - DICOM to STL.zip - Google Drive

This is a sinogram (time sequence of cone-beam CT projection images), not a 3D volume. You can reconstruct a 3D volume from projection images using filtered backprojection or similar algorithms if you knownthe exact projection geometry and pose of the source and detector for every frame. Slicer does not have a module for this but instead you can try RTK image reconstruction toolkit.

Dear Andras,

Thank you so much for your reply. I attached the full raw files from Micro CT Scanner.

  1. Could you please advise if there is any files that is more appropriate for this reconstruction using 3D Slicer?
  2. Based on your advice, I am trying to integrate RTK into 3D Slice - Could you advise how I can use RTK in 3D Slice?
  3. Are there any documents/videos that I can refer to for the process about “You can reconstruct a 3D volume from projection images using filtered backprojection or similar algorithms if you knownthe exact projection geometry and pose of the source and detector for every frame.”? It was my first time doing CT scan and I am not sure what info from attached folder and what process needed for this.

Full Raw Files: https://drive.google.com/file/d/1-yJTe4HRXms5-jw-HmI4a7uoxk6uhW2G/view?usp=sharing

I sincerely appreciate your help.

Best,
Minji

2024년 2월 12일 (월) 오후 9:09, Andras Lasso via 3D Slicer Community <notifications@slicer.discoursemail.com>님이 작성:

Files that would be suitable to be used with Slicer should have been under the subfolder called Reconstruction, which is empty. I would ask the lab/person who gave you this dataset to provide you with the reconstruction.

RTK is an independent application, that has nothing to do with Slicer. You need to build it from the source and then experiment with the settings.

You may also want to try out the python based TomoPy from the Argonne Labs. It might be less challenging to get it going then RTK. About — TomoPy a7bd9a0b37c2b1d88e305b1eca37440e5120ba62 documentation. However, I havent used either of these tools, so dont know how they compare to each other.

Getting reconstructions out of sinograms require certain information about the acqusition geometry as well i believe. Therefore people usually use the reconstruction software provided by the vendor with the system. That’s why reaching the people who created the scan in the first place might be your simplest solution.

1 Like

Hi I found .vgi and .vol under my Recon folder. Could you advise how I can open this in 3D slicer? I saw another posts talking about nhdr or python code that I can try, but not sure how to do with my files.

Link: https://drive.google.com/drive/folders/1yF75Nrx339yAXrl11uc1qHsFqCqbgohU?usp=sharing
Thank you

If you had the PCR file (the reconstruction file), you could have tried our GEVolImport module in SlicerMorph. However, vgi file is only there to import the saved .VOL file into VGStudioMax.

You can try to open the VGII file in a text editor, and see the dimensions and data type of the images saved in the VOL file, and from there you can create NHDR to import the file into Slicer.

Thanks, I actually try to create NHDR file but I don’t have a good understanding on how to create nhdr data. Could you please advise?

2024년 2월 15일 (목) 오후 2:04, Murat Maga via 3D Slicer Community <notifications@slicer.discoursemail.com>님이 작성:

copy and paste this in a file called KP_240211_Sand_1.nhdr and drag and drop to slicer.

NRRD0004
# Complete NRRD file format specification at:
# http://teem.sourceforge.net/nrrd/format.html
type: float
dimension: 3
space: left-posterior-superior
sizes: 1389 1477 1999
space directions: (0.113428, 0.0, 0.0) (0.0, 0.113428, 0.0) (0.0, 0.0, 0.113428)
kinds: domain domain domain
endian: little
encoding: raw
space origin: (0.0, 0.0, 0.0)
data file: KP_240211_Sand_1.vol

You can use this as a template for other scans like that the important sections from the VGI file are fields called:
size
datatype
resolution

Thanks. I just tried but Slicer didn’t activate ‘Load Files’ button with this error message…

[Qt] libpng warning: iCCP: profile ‘ICC Profile’: ‘CMYK’: invalid ICC profile color space

[Qt] libpng warning: iCCP: known incorrect sRGB profile

Traceback (most recent call last):

File “C:/Users/ectym/AppData/Local/slicer.org/Slicer 5.6.1/slicer.org/Extensions-32438/SlicerMorph/lib/Slicer-5.6/qt-scripted-modules/ImageStacks.py”, line 364, in populateFromArchetype

self.setFilePaths(filePaths)

File “C:/Users/ectym/AppData/Local/slicer.org/Slicer 5.6.1/slicer.org/Extensions-32438/SlicerMorph/lib/Slicer-5.6/qt-scripted-modules/ImageStacks.py”, line 306, in setFilePaths

self.logic.filePaths = filePaths

File “C:/Users/ectym/AppData/Local/slicer.org/Slicer 5.6.1/slicer.org/Extensions-32438/SlicerMorph/lib/Slicer-5.6/qt-scripted-modules/ImageStacks.py”, line 591, in filePaths

reader.ReadImageInformation()

File “C:\Users\ectym\AppData\Local[slicer.org](http://slicer.org)\Slicer 5.6.1\lib\Python\Lib\site-packages\SimpleITK\SimpleITK.py”, line 6253, in ReadImageInformation

return _SimpleITK.ImageFileReader_ReadImageInformation(self)

RuntimeError: Exception thrown in SimpleITK ImageFileReader_ReadImageInformation: D:\D\S\S-0-build\ITK\Modules\IO\NRRD\src\itkNrrdImageIO.cxx:292:

itk::ERROR: NrrdImageIO(0000022EABFF62F0): ReadImageInformation: Error reading C:/Users/ectym/Desktop/recon/KP_240211_Sand_1.nhdr:

[nrrd] nrrdLoad: trouble reading “C:/Users/ectym/Desktop/recon/KP_240211_Sand_1.nhdr”

[nrrd] nrrdRead: trouble

[nrrd] _nrrdRead: trouble reading NRRD file

[nrrd] _nrrdFormatNRRD_read: hit end of header, but no “data file” given

2024년 2월 15일 (목) 오후 3:06, Murat Maga via 3D Slicer Community <notifications@slicer.discoursemail.com>님이 작성:

@Minji_Yu I think you have SlicerMorph installed. In that case it suggest to load the NHDR as an imagestack. Please choose “Any Data” option and retry. Also make sure that VOL file is in the same folder as your NHDR file.

@lassoan, can we stop the ImageStack’s behavior to treat NRRD/NHDR to automatically try to open with ImageStacks. It is a corner use case, and it will confuse people. For people who need to stream large NRRD to benefit from ImageStacks, they should navigate the module and use the file selector from there.

You can choose the list of file extensions that ImageStacks accepts for drag-and-drop here: SlicerMorph/ImageStacks/ImageStacks.py at 1ece7a402999f7f7b2d25937a29adc58ccfddfaa · SlicerMorph/SlicerMorph · GitHub

If we want people to switch from tiff stacks to nrrd then this will be a very common, important use case, because most high-resolution data sets will be too big for an average laptop to handle.

ImageStacks should be improved to ensure there is no user confusion. The custom ImageStacks filedialog could be also bypassed for compressed files (until compression is implemented) and for files below a certain size (e.g., less than 1/10 of system RAM).

The long-term solution may be to use something that is a bit more sophisticated than NRRD, because for good performance and storage efficiency we need multiresolution, random access, and patch-based compression. These are all available in OME-NGFF, which has recently become supported in ITK, so we should be able to use it in Slicer.

1 Like

I agree, when I mean corner case I mean for the time being. For big data, we do consider switching to OME-NGFF, or give an option of saving in that format, provided that we can build the multiscale pyramids during the import time and include in the format. So until then, probably NRRD is what we need to stick with.