open-discussion
open-discussion > RE: Reconstruct SPECT data
Jun 6, 2013 07:06 AM | Stefano Pedemonte
RE: Reconstruct SPECT data
Hi Filipe,
The DICOM file tha you describe is a viewgram. The viewgram and sinogram are exactly the same data: they represent the number of photons detected at all detector pixels, for all positions of the SPECT camera (360 positions in your case). If the camera has, for example, 128 x 128 pixels, then the imaging data is composed of 128x128x360 (integer) values, each camera collecting an image of size 128x128.
The only difference between the sinogram and the viewgram stands in how the pixels are indexed. In the case of the viewgram, the index of the data vector runs along the rows for a given camera position, then along the columns, then along the camera positions. In the case of the sinogram, the index runs along the first row for the camera at position 1, then it runs along row 1 of the camera at position 2, ..; after scanning the first rows for all camera positions, it runs along the second row for the camera at position 1, then along the second row for the camera at position 2, ..
In other words, if the reconstruction software wants a sinogram, you will have to re-order the data vector in the DICOM file. You can use for example Matlab: open the dicom file, apply shiftdim() to the imaging data and save the DICOM file.
If you have Matlab and a GPU, try the NiftyRec reconstruction software, hosted on NITRC. It uses viewgrams, so you will not need to re-order the data. Edit et_demo_mlem.m and modify the file to load your DICOM file, instead of the demo data file.
Best regards,
Stefano Pedemonte
The DICOM file tha you describe is a viewgram. The viewgram and sinogram are exactly the same data: they represent the number of photons detected at all detector pixels, for all positions of the SPECT camera (360 positions in your case). If the camera has, for example, 128 x 128 pixels, then the imaging data is composed of 128x128x360 (integer) values, each camera collecting an image of size 128x128.
The only difference between the sinogram and the viewgram stands in how the pixels are indexed. In the case of the viewgram, the index of the data vector runs along the rows for a given camera position, then along the columns, then along the camera positions. In the case of the sinogram, the index runs along the first row for the camera at position 1, then it runs along row 1 of the camera at position 2, ..; after scanning the first rows for all camera positions, it runs along the second row for the camera at position 1, then along the second row for the camera at position 2, ..
In other words, if the reconstruction software wants a sinogram, you will have to re-order the data vector in the DICOM file. You can use for example Matlab: open the dicom file, apply shiftdim() to the imaging data and save the DICOM file.
If you have Matlab and a GPU, try the NiftyRec reconstruction software, hosted on NITRC. It uses viewgrams, so you will not need to re-order the data. Edit et_demo_mlem.m and modify the file to load your DICOM file, instead of the demo data file.
Best regards,
Stefano Pedemonte
Threaded View
Title | Author | Date |
---|---|---|
Filipe Monteiro | Jun 5, 2013 | |
Stefano Pedemonte | Jun 6, 2013 | |
Filipe Monteiro | Jun 24, 2013 | |
Filipe Monteiro | Jun 6, 2013 | |