How can I copy the 2D axes calibration of an image, to a 3D dataset of the same size, except that has an additional depth dimension?
Asked
Active
Viewed 54 times
1 Answers
1
The script below will do that. You use ImageGet/SetDimension....
for that.
image img2d := GetFrontImage()
if ( 2 != img2d.ImageGetNumDimensions() ) Throw( "Not 2D")
number sx = img2D.ImageGetDimensionSize(0)
number sy = img2D.ImageGetDimensionSize(1)
image img3d := RealImage("3D",4,sx,sy,10)
for( number i=0; i<2; i++ ){
img3d.ImageSetDimensionScale( i, img2d.ImageGetDimensionScale(i) )
img3d.ImageSetDimensionOrigin( i, img2d.ImageGetDimensionOrigin(i) )
img3d.ImageSetDimensionUnitString( i, img2d.ImageGetDimensionUnitString(i) )
}
img3d.ShowImage()
However, based on what you need the 3D image for, it can be better to clone the 2D image and make it into a 3D image. This will preserve all meta-data but set the data values to 0.
image img2d := GetFrontImage()
if ( 2 != img2d.ImageGetNumDimensions() ) Throw( "Not 2D")
number sx = img2D.ImageGetDimensionSize(0)
number sy = img2D.ImageGetDimensionSize(1)
number sz = 10
image img3d := img2d.ImageClone()
img3d.ImageResize(3, sx, sy, sz)
img3d.ShowImage()

BmyGuest
- 6,331
- 1
- 21
- 35
-
Thank you! You read my mind about potentially cloning an existing 2d image into a 3d one! – TomNorway Sep 09 '20 at 17:06