IPSDK 0.2
IPSDK : Image Processing Software Development Kit
imagezoom3dImg (inImg,xZoomFactor,yZoomFactor,zZoomFactor,interpolationMethod)
imagezoom3dImg (inImg,zoomFactor,interpolationMethod)

Detailed Description

Algorithm allowing to resize a 3d image.

This algorithm allows to resize a 3d image using one of the available interpolation methods
The user can resize a 3d image either to the expected output image size or by specifying the scale factors along the x, y and z axis.

If the user provides the buffer of the output image, he has to initialize its dimensions with the correct values. If the user requests a resize operation by specifying the scale factors, for instance, the dimensions of the output image must equal to:

The enumerate ipsdk::attr::eZoomInterpolationMethod permits to specify the interpolation method to use to resize the image. The following interpolation methods are available:

An example of image resizing is illustrated in 2d case : see 2d zoom.

Example of Python code :

Example imports

import PyIPSDK
import PyIPSDK.IPSDKIPLGeometricTransform as gtrans

Code Example

# opening of input image
inImg = PyIPSDK.loadTiffImageFile(inputImgPath)
xScaleFactor = 2.1
yScaleFactor = 1.2
zScaleFactor = 1.3
# initialization of output image
outImg3dSize = gtrans.getZoom3dOutputImageSize(PyIPSDK.createImg3dSize(inImg.getSizeX(), inImg.getSizeY(), inImg.getSizeZ()), PyIPSDK.createScaleFactor3d(xScaleFactor, yScaleFactor, zScaleFactor))
outImg3dSizeX = outImg3dSize.xSz
outImg3dSizeY = outImg3dSize.ySz
outImg3dSizeZ = outImg3dSize.zSz
outGeometry = PyIPSDK.geometry3d(inImg.getBufferType(), outImg3dSizeX, outImg3dSizeY, outImg3dSizeZ)
outImg = PyIPSDK.createImage(outGeometry)
# 3d zoom
gtrans.zoom3dImg(inImg, xScaleFactor, yScaleFactor, zScaleFactor, PyIPSDK.eZoomInterpolationMethod.eZIM_NearestNeighbour, outImg)

Example of C++ code :

Example informations

Header file

#include <IPSDKIPL/IPSDKIPLGeometricTransform/Processor/Zoom3dImg/Zoom3dImg.h>

Code Example

// opening input image
ImagePtr pInImg = loadTiffImageFile(inputImgPath, eTiffDirectoryMode::eTDM_Volume);
if(inImageBufferType != pInImg->getBufferType())
pInImg = convertImg(pInImg, inImageBufferType);
ImagePtr pOutImg = zoom3dImg(pInImg, xScaleFactor, yScaleFactor, zScaleFactor, interpolationMethod);