def floorSub3D(imIn1, imIn2, imOut): """ subtracts image 'imIn2' from image 'imIn1' and puts the result in 'imOut'. If imIn1 - imIn2 is negative, the result is truncated and limited to 0. Although it is possible to use a 8-bit image for imIn2, it is recommended to use the same depth for all the images. Note that this operator is mainly useful for 32-bit images, as the result of the subtractiontion is always truncated for 8-bit images. """ outl = len(imOut) in1l = len(imIn1) in2l = len(imIn2) if in1l!=outl or in2l!=outl: mamba.raiseExceptionOnError(core.MB_ERR_BAD_SIZE) for i in range(outl): mamba.floorSub(imIn1[i], imIn2[i], imOut[i])
def floorSub3D(imIn1, imIn2, imOut): """ subtracts image 'imIn2' from image 'imIn1' and puts the result in 'imOut'. If imIn1 - imIn2 is negative, the result is truncated and limited to 0. Although it is possible to use a 8-bit image for imIn2, it is recommended to use the same depth for all the images. Note that this operator is mainly useful for 32-bit images, as the result of the subtractiontion is always truncated for 8-bit images. """ outl = len(imOut) in1l = len(imIn1) in2l = len(imIn2) if in1l != outl or in2l != outl: mamba.raiseExceptionOnError(core.MB_ERR_BAD_SIZE) for i in range(outl): mamba.floorSub(imIn1[i], imIn2[i], imOut[i])
def maxDynamics(imIn, imOut, h, grid=mamba.DEFAULT_GRID): """ Extracts the maxima of 'imIn' with a dynamics higher or equal to 'h' and puts the result in 'imOut'. Grid used by the dual build operation can be specified by 'grid'. Only works with 8-bit or 32-bit images as input. 'imOut' must be binary. """ imWrk = mamba.imageMb(imIn) if imIn.getDepth() == 8: mamba.subConst(imIn, h, imWrk) mamba.hierarBuild(imIn, imWrk, grid=grid) mamba.sub(imIn, imWrk, imWrk) else: mamba.floorSubConst(imIn, h, imWrk) mamba.build(imIn, imWrk, grid=grid) mamba.floorSub(imIn, imWrk, imWrk) mamba.threshold(imWrk, imOut, h, mamba.computeMaxRange(imIn)[1])
def maxima(imIn, imOut, h=1, grid=mamba.DEFAULT_GRID): """ Computes the maxima of 'imIn' using a build operation and puts the result in 'imOut'. When 'h' is equal to 1 (default value), the operator provides the maxima of 'imIn'. Grid used by the build operation can be specified by 'grid'. Only works with with 8-bit or 32-bit images as input. 'imOut' must be binary. """ imWrk = mamba.imageMb(imIn) if imIn.getDepth() == 8: mamba.subConst(imIn, h, imWrk) mamba.hierarBuild(imIn, imWrk, grid=grid) mamba.sub(imIn, imWrk, imWrk) else: mamba.floorSubConst(imIn, h, imWrk) mamba.build(imIn, imWrk, grid=grid) mamba.floorSub(imIn, imWrk, imWrk) mamba.threshold(imWrk, imOut, 1, mamba.computeMaxRange(imIn)[1])