MATLAB: Describe angulated slices using imref3d

angulated slicescoordinate systemImage Processing Toolboximref3dMATLAB

Just found out about the functions imref2d and imref3d and I am a bit puzzled on how to implement angulated slices.
slicedata = rand(10,10,1);
% set coordinates
xbounds = [-100 100]; % x and y run from -100 cm
ybounds = [-100 100]; % to 100 cm
zbounds = [-10 2]; % zslice is angulated; 'left' side is
% lower then 'right' side.
To create an imref3d object I would then expect to use:
imref3d([size(slicedata) 1],xbounds,ybounds,zbounds)
However when I look at the imref3d object contents, it says:
imref3d with properties:
XWorldLimits: [-100 100]
YWorldLimits: [-100 100]
ZWorldLimits: [-10 2]
ImageSize: [10 10 1]
PixelExtentInWorldX: 20
PixelExtentInWorldY: 20
PixelExtentInWorldZ: 12
ImageExtentInWorldX: 200
ImageExtentInWorldY: 200
ImageExtentInWorldZ: 12
XIntrinsicLimits: [0.5000 10.5000]
YIntrinsicLimits: [0.5000 10.5000]
ZIntrinsicLimits: [0.5000 1.5000]
Here PixelExtenInWorldX and PixelExtenInWorldY are correct; however it interprets the PixelExtenInWorldZ wrongly. Is this a bug or am I just misusing the imref3D object? If so; does anyone has suggestions for improvements?

Best Answer

Hi Wouter,
The functions imref2d and imref3d are currently limited to rectilinear referencing. In your case, it sounds like there is an affine relationship between the third dimension of your data and the Z dimension in which the left extent of your volume is lower in the world Z coordinate system than the right extent of your volume.
Can you provide a little more information about what you know regarding the world location of your image data and an example of how you would want to construct a 3-D spatial referencing object to reference your data?
Thanks,
Alex Taylor Image and Geospatial Group MathWorks