.vgl to 3D Slicer

Hi,

Maybe my question is very beginner, so I apologize for that. I would like to say that I totally don’t understand any specialized terms connected with CT scanning and X-ray. I just want to measure distances inside a connector. I made some CT scans using a GE PHOENIX X-RAY NANOMEX 180T, and after that, I got files in formats like .tiff, .vgi, .pcj, .vol, .pcr, .pca, etc. The company has a program called myVGL, but there is no option for saving measured dimensions.

So, I would like to know if there is any option to display slices like in the myVGL viewer in 3D Slicer? I’ve read something here: Loading files from a GE microCT, but unfortunately, I totally don’t understand it. The outcome should be something like what is displayed in the attached photos. Can someone please




give me step by step tutorial, if it is possible what I wrote?

Thank you for any response and help, I appreciate it, and sorry for my lack of knowledge.

Install SlicerMorph extension, and follow the tutorial for ImageStacks.

Thank you for your response! I’ve tried it and it shows that there might be hidden processing in the myVGL viewer, or the information about the composition of slices is in a different files than .tif (tif files showing only images of rotating sample), because what I got looks like this.

Those are the shadow images (or tomograms), you need the reconstructed cross-sectional slices.

Is there a .vol file somewhere where you see the .pcr file? If that’s the case you might be able to use the GEVolImport.

Yes, I have both, .pcr and .vol in the same directory. I tried to select .pcr file, for generating NHDR file, but after clicking on ‘Generate NHDR file’ button, nothing happens.

If you can share your data, we can take a look. @chz31

1 Like

Thank you very much for your efforts and willingness.

Thanks for sharing the file. The GEVOLImport was made for GE Tome MicroCT particularly. The format of PCR files are slightly different. I’ll try to modify it today and get back to you soon.

1 Like

Until @chz31 can update GEVolImport to this format, you can use the RawImageGuess extension with the shown parameters:

The error generating NHDR is because the pcr file generated by GE Phoenix somehow has no voxel size value in it. In the pcr of GE Tome, this value is stored in “VoxelSizeRec”.

I found that the voxel size is stored in “.pca” as “VoxelSizeX” and “VoxelSizeY”, and in “.vgi” as “resolution”. My solution for the current problem is here. Basically, if the pcr parser cannot find “VoxelSizeRec”, it will go to look for “.pca” and “.vgi” for the resolution information:

        if self.spacing is None:
           pcaFilePath = fileName + ".pca"
           vgiFilePath = fileName + ".vgi"
           if os.path.isfile(pcaFilePath):
               with open (pcaFilePath) as in_file:
                   for line in in_file:
                       lines.append(line.strip("\n"))
               for element in lines:
                   if(element.find("VoxelSizeX=")>=0):
                       self.spacing = float(element.split('=')[1])
           elif os.path.isfile(vgiFilePath):
               with open (vgiFilePath) as in_file:
                   for line in in_file:
                       lines.append(line.strip("\n"))
               for element in lines:
                   if(element.find("resolution")>=0):
                       self.spacing = float(element.split(' ')[2])

I successfully generated an NHDR file and use it to properly load the VOL into Slicer.

To try the update, you can remove your current SlicerMorph extension, and download my fork of SlicerMorph here. You can just download the zip file, unzip it, and use Extension Wizard to install it. The Extension Wizard tutorial is here. Alternatively, you can go to Slicer 5.7/Contents/Extensions-32879/SlicerMorph/lib/Slicer-5.7/qt-scripted-modules(or where your Slicer is installed) and replace the content of GEVOLImport.py with the updated script.

This is a temporary solution, but it seems that GE Phoenix automatically generate “.pcr”, “.pca”, and “.vgi” along with the VOL file in the same directory. @muratmaga

One question I have is, the PCR file shows the scalar format = 5, which is unsigned short. In the “.vgi” file, it shows the format is “unsigned integer”. Are they practically the same? I used format = 5 in “.pcr”.

thanks @chz31 Yes, unsigned interger and short are the same.

Please send a PR with this change…

1 Like

Great! Just sent a PR.

Thank you very much! Everything seems to be working well. Have a nice day!

1 Like