Main Content

makeMultiLevel2D

2-D multilevel blocked image

Since R2023a

    Description

    mbim = makeMultiLevel2D(bim) makes a new 2-D multilevel blocked image, mbim, from the finest resolution level of the blocked image bim. Each new level is half the size of the prior level. The function stops adding levels when the image size is smaller than 2048-by-2048 pixels.

    example

    mbim = makeMultiLevel2D(bim,Name=Value) specifies additional options, such as the scale factors and interpolation method, using name-value arguments. For example, specify Interpolation="cubic" to use bicubic interpolation when resizing each level of the image.

    Examples

    collapse all

    Create a blocked image from a large image. The file tumor_110.tif contains a single-resolution 2-D image that exceeds 2048-by-2048 pixels.

    bim = blockedImage("tumor_110.tif");
    bim.Size
    ans = 1×3
    
            2560        3072           3
    
    

    Make a multilevel blocked image.

    multibim = makeMultiLevel2D(bim);

    Display the size of the multilevel blocked image. The second level is half the size of the original image.

    multibim.Size
    ans = 2×3
    
            2560        3072           3
            1280        1536           3
    
    

    Input Arguments

    collapse all

    Blocked image, specified as a blockedImage object containing 2-D image data. If the blocked image has multiple resolution levels, then makeMultiLevel2D uses the image at the finest resolution level.

    Name-Value Arguments

    Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

    Example: mbim = makeMultiLevel2D(bim,Interpolation="cubic") uses bicubic interpolation when resizing each level.

    Scale factors, specified as a vector of positive numbers. If you want the new multilevel blocked image to include the original blocked image, then include 1 as an element of Scales.

    If you use a TIFF Adapter, then the scaled block sizes must be multiples of 16 pixels. If you specify scale factors that result in invalid block sizes, then the makeMultiLevel2D function rounds the scaled block sizes to the nearest multiple of 16 pixels.

    Example: [1 0.66 0.5 0.33] creates a 4-level blocked image with levels that are 1, 0.66, 0.5, and 0.33 times the size of the initial image.

    Example: [0.5 0.1] creates a 2-level blocked image with levels that are 0.5 and 0.1 times the size of the original image.

    Block size of data, specified as a 2-element vector of positive integers. The default value for the TIFF adapter is equal to the block size of bim at the finest resolution level, rounded to the nearest multiple of 256. The default value for most other adapters is equal to the block size of bim at the finest resolution level.

    Interpolation method, specified as one of these values.

    Interpolation MethodDescription
    "nearest"

    Nearest-neighbor interpolation. The output pixel is assigned the value of the pixel that the point falls within. No other pixels are considered.

    Nearest-neighbor interpolation is the only method supported for categorical images and it is the default method for images of this type.

    "linear"Linear interpolation. Linear interpolation is the default interpolation method for numeric and logical images.
    "cubic"Cubic interpolation.

    When the method is "linear" or "cubic", the function also performs antialiasing.

    Location of the output folder, specified as a string scalar or character vector. When the UseParallel argument is true, specify OutputLocation as a valid path on the client session, and use the AlternateFileSystemRoots property of the input blocked image bim to specify the required mapping for worker sessions.

    Adapter used for writing blocked image data, specified as an adapter object with write capabilities. This table lists the supported adapters included with the toolbox.

    AdapterDescription
    BINBlocksStore each block as a binary file in a folder
    GenericImage Store blocks in a single image
    GenericImageBlocksStore each block as an image file in a folder
    H5Store blocks in a single HDF5 image
    H5BlocksStore each block as an HDF5 file in a folder
    InMemoryStore blocks in a variable in main memory
    JPEGBlocksStore each block as a JPEG file in a folder
    MATBlocksStore each block as a MAT file in a folder
    PNGBlocksStore each block as a PNG file in a folder
    TIFFStore blocks in a single TIFF file

    You can also specify a custom adapter that performs custom writing operations. For more information, see images.blocked.Adapter.

    If the source of bim is in memory, and you do not specify the OutputLocation argument, then the default adapter is an InMemory adapter. Otherwise, the default value is a TIFF adapter.

    Use parallel processing, specified as a numeric or logical 0 (false) or 1 (true). The adapter specified by the Adapter argument must support parallel processing. You must specify a valid OutputLocation.

    This argument requires Parallel Computing Toolbox™.

    Data Types: logical

    Display wait bar, specified as a numeric or logical 1 (true) or 0 (false). When set to true, the makeMultiLevel2D function displays a wait bar for long-running operations. If you cancel the wait bar, the makeMultiLevel2D function returns partial output, if available.

    Data Types: logical

    Output Arguments

    collapse all

    Multilevel blocked image, returned as a blockedImage object. The function orders the levels from finest to coarsest resolution.

    Tips

    • If you want to create overview levels for a very large blocked image, consider creating the overview levels in memory, and then combining the original image and the overview levels using the concatenateLevels function. This approach does not require creating a second copy of the original image.

    Version History

    Introduced in R2023a