Skip to main content
Solved

DICOM image processing

  • August 17, 2018
  • 1 reply
  • 8 views

pat_uow
Contributor
Forum|alt.badge.img

Just wondering if anyone has tried the (very) new DICOM reader in 2018.1 Desktop.

I would like to process several folders of NON-MEDICAL DICOM CT images in an engineering application, using the raster (relative density) data returned in x,y by z slices to create a fully dimensioned 3D model suitable for viewing in a standard browser.

Being able to project the DICOM x,y,z coordinate system into a real world coordinate system would be a distinct advantage, as would being able to contrast and window to observe specific features.

Any experience people have with this greatfully appreciated.

Best answer by jakemolnar

Hi @pat_uow,

I've had a little success in creating at least point cloud models by:

  1. Count the raster slices with a Counter (gives each slice a nice ID)
  2. Use a RasterCellValueReplacer to threshold the data, setting all values below some value to 0
  3. Use a RasterBandNodataSetter to make 0 a nodata value
  4. Use a RasterBandInterpretationCoercer to make the band into a numeric band (probably real32 or real64).
  5. Use a RasterCellValueReplacer to set all nondata values to Value(_count)*SliceThickness (this makes it into a raster of heights rather than of colors).
  6. Send all these features to a PointCloudCombiner, which creates points for each raster cell at the height given in the numeric band, and at the xs and ys given by the original xy dimensions of your rasters.

You may be able to post-process with a TINGenerator, or some other technique like those given here:

https://knowledge.safe.com/articles/1540/tutorial-point-cloud-transformations.html

View original
Did this help you find an answer to your question?

1 reply

jakemolnar
Forum|alt.badge.img
  • Best Answer
  • August 17, 2018

Hi @pat_uow,

I've had a little success in creating at least point cloud models by:

  1. Count the raster slices with a Counter (gives each slice a nice ID)
  2. Use a RasterCellValueReplacer to threshold the data, setting all values below some value to 0
  3. Use a RasterBandNodataSetter to make 0 a nodata value
  4. Use a RasterBandInterpretationCoercer to make the band into a numeric band (probably real32 or real64).
  5. Use a RasterCellValueReplacer to set all nondata values to Value(_count)*SliceThickness (this makes it into a raster of heights rather than of colors).
  6. Send all these features to a PointCloudCombiner, which creates points for each raster cell at the height given in the numeric band, and at the xs and ys given by the original xy dimensions of your rasters.

You may be able to post-process with a TINGenerator, or some other technique like those given here:

https://knowledge.safe.com/articles/1540/tutorial-point-cloud-transformations.html


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings