R2023a

New Features, Bug Fixes, Compatibility Considerations

Volume Visualization: Display blocked volumes

The volshow function now supports displaying large image volumes stored as a blockedImage object. When you pass a blockedImage object as input, volshow displays the volume and creates a BlockedVolume object. The BlockedVolume object controls the appearance and behavior of the blocked image volume within a 3-D scene. To get started, see Display Large 3-D Images Using Blocked Volume Visualization.

Blocked Images: Add levels to large images, combine block locations, and other enhancements

Several enhancements to blocked images enable streamlined workflows when working with blocked images.

  • Create multilevel blocked images using the makeMultiLevel2D and makeMultiLevel3D functions. These functions are particularly useful when you want to create overview levels for a very large image.

  • Combine the levels of two or more blocked images using the concatenateLevels function. This function supports combining data in different formats and in different locations. To efficiently add overview levels to a very large image on disk, you can create the overview levels in memory, and then combine the original image and the overview levels using concatenateLevels.

  • Merge the locations of selected blocks from two arrays of blocked images using the mergeBlockLocationSets function. Use this function when you want to combine block locations selected from a set of images using different criteria, or when you want to combine block locations selected from two different sets of images.

  • Use the JPEG2000 adapter to read blocks of a single JPEG2000 file.

  • Write all blocks of a blocked image datastore to files using the writeall function.

  • When you display 2-D blocked images using the bigimageshow object, you can add listeners for the new DataReadStarted and DataReadFinished events.

  • When you get or specify pixel coordinates using the getRegion, sub2world, or world2sub functions, you can now specify the pixel or world coordinates using a lower dimensionality than that of the blocked image.

Image Batch Processor App: Support for image datastores and other enhancements

The Image Batch Processor app includes several new capabilities:

  • Image datastore support — Load a batch of images by importing an imageDatastore object from the MATLAB® workspace.

  • Support for additional file formats — Load images from file formats including RAW and EXR.

  • Additional command line syntaxes — Open the Image Batch Processor app and load images using two new syntaxes.

    This syntax opens the app and loads the batch of images stored in the specified folder folderLocation.

    imageBatchProcessor(folderLocation)
    This syntax opens the app and loads the images in the imageDatatore object imds.
    imageBatchprocessor(imds)

  • You can now optionally pass a second input argument, info, to your batch processing function. The info argument contains information about the image source, including the image filename. For an example that uses the info argument, see Process Images Using Image Batch Processor App with File Metadata.

 Color Thresholder App: Enhanced in-app image acquisition and updated graphics requirements

Starting in R2023a, you can more easily retake images acquired in the Color Thresholder using the new Import From Camera window. To open the window, on the app toolstrip, select Load Image > Acquire Image From Camera. In the window, you can adjust camera settings, capture an image by clicking Capture, and then choose to Retake or Accept the image. Once you accept an image, the window closes and the accepted image is loaded into the Choose a Color Space tab. Previously, you needed to reopen the Image Capture tab each time you wanted to retake an image.

 Compatibility Considerations

The app now requires hardware-accelerated graphics rendering for some features. For more information, see Functionality being removed or changed.

bwboundaries function: Trace exterior boundaries

The bwboundaries function has two new name-value arguments.

  • The TraceStyle name-value argument adds support for tracing the boundary along the exterior edge of boundary pixels. Before, the function traced the boundary through only the centers of boundary pixels.

  • The CoordinateOrder name-value argument adds support for returning boundary coordinates in (x, y) order. Before, the function returned boundary coordinates in only (y, x) order.

iradon function: Additional support for data type single

The iradon function now supports projection angles theta of data type single. When you specify theta as data type single, the iradon function returns the frequency response H as data type single.

Preferences in MATLAB Online: Update preferences interactively using the MATLAB Preferences window

Before R2023a, in MATLAB Online™, you could only access and update toolbox preferences programmatically using the iptgetpref and iptsetpref functions, respectively. You could not set toolbox preferences interactively.

Starting in R2023a, in MATLAB Online, you can additionally access and set toolbox preferences interactively using the MATLAB Preferences window. Open the Preferences window using the iptprefs function.

  • Access display settings for the imshow function under MATLAB>Image Display.

  • Access display settings for the Image Viewer app, as well as an option for enabling hardware optimizations, under Image Processing Toolbox.

There is no change to the MATLAB Preferences window in MATLAB desktop. For details, see iptprefs.

C Code Generation: Generate code from additional functions using MATLAB Coder

This list indicates the Image Processing Toolbox™ functions that have been enabled for code generation in this release. For all target platforms, these functions generate C code. For a complete list of Image Processing Toolbox functions that support code generation, see Functions Supporting Code Generation.

The bwconncomp function now supports input images of any dimension. The function can now generate code that returns the PixelIdxList field in the CC structure.

Hyperspectral Image Processing: Image Processing Toolbox Hyperspectral Imaging Library (Version 23.1)

  • Use the customSpectralIndex function to define and compute an index specific to your application. You can use a custom spectral index to ease a workflow where standard hyperspectral indices are not applicable. You can also use a custom spectral index to fine-tune commonly used spectral indices to your specific hyperspectral data.

  • Visualize standard and custom spectral indices of hyperspectral data and export color bands, spectral indices and masks to the workspace using the new capabilities in the Hyperspectral Viewer app.

  • Support for hyperspectral data from the AVIRIS sensor.

  • The Manually Label ROIs in Multispectral Image example shows how to manually select regions of interest (ROIs) from a multispectral image and save them in a shapefile using the Mapping Toolbox™.

To use these functions and tools, you must download Image Processing Toolbox Hyperspectral Imaging Library from the Add-On Explorer. See Get and Manage Add-Ons.

 Functionality being removed or changed

The regionprops function uses new equation for circularity

Behavior change

Starting in R2023a, the regionprops function uses a new equation to calculate circularity. The new equation removes a bias that caused the computed circularity to be too high for relatively small objects.

If you wants to reproduce circularity measurements using the old equation, then you can use these commands:

props = regionprops(I,["Area" "Perimeter"]);
oldCircularity = 4*pi*props.Area ./ props.Perimeter.^2;

MATLAB Online limits maximum image display resolution

Behavior change

Starting in R2023a, MATLAB Online limits image display resolution to improve rendering speed for large images. This behavior affects the onscreen display, but it does not affect the image data. Before displaying large images, MATLAB Online resizes the largest dimension to a maximum size of 512 pixels for 2-D images and 256 voxels for 3-D image volumes. The smaller dimensions adjust to preserve the aspect ratio of the image or volume. To view images at their full resolution, use MATLAB desktop.

For the imshow function only, you can display images at their full resolution online by setting the MaxRenderedResolution property of the output Image object to "none". For details about the MaxRenderedResolution property, see Image Properties.

Color Thresholder App: Updated graphics system requirements

Behavior change

Starting in R2023a, some features within the Color Thresholder app require hardware-accelerated graphics rendering. If MATLAB is using a software-rendering implementation, the app disables these features:

  • Visualization of color space values as point clouds.

  • Interactive drawing using the freehand ROI and polygon ROI tools.

To determine which implementation MATLAB is using, call the rendererinfo function. For details about graphics rendering in MATLAB, see System Requirements for Graphics.