Skip to content

mattools/matlab-image-class

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

matlab-image-class

Generic class for representation of 2D/3D...5D images with Matlab.

Description

This package consists in the Image class, that encapsulates a (possibly multidimensional) data array together with various meta-data used to interpret the data (spatial calibration, look-up table, grayscale extent...).

The Image class can manage up to five dimensions, corresponding to the X, Y, Z, Channels, and Time. Images are asociated to a type that indicates how the content should be interpreted: "color", "intensity", "binary", "label"...

Nearly 200 methods are provided for quickly applying image processing operators on image instances, by keeping relevant meta-data such as spatial calibration, and automatically inferring the type of the result images. A User Manual is available in pdf format.

The Image class is at the basis of the development of the ImageM application (http://github.com/mattools/ImageM). The MatStats package (https://github.com/mattools/matStats) may be necessary for some functions.

Example 1

The following example performs a segmentation on a grayscale image. It uses computation of gradient, filtering, morphological processing, and management of label images.

% read a grayscale image
img = Image.read('coins.png');
% compute gradient as a vector image. 
grad = gradient(img);
% Compute the norm of the gradient, and smooth
gradf = boxFilter(norm(grad), [5 5]);
figure; show(gradf, []);
% compute watershed after imposition of extended minima
emin = extendedMinima(gradf, 20, 4);
grad2 = imposeMinima(gradf, emin, 4);
lbl = watershed(grad2, 4);
% display binary overlay over grayscale image
show(overlay(img, lbl==0, 'g'));
% cleanup segmentation and convert to RGB image
lbl2 = killBorders(lbl);
show(label2rgb(lbl2, 'jet', 'w'));

segmentation pipeline of a grayscale image using watershed

Example 2

The following example presents various ways to explore and display the content of a 3D image.

% read data, adjust contrast, and specify spatial calibration
img = adjustDynamic(Image.read('brainMRI.hdr'));
img.Spacing = [1 1 2.5];
% show as three orthogonal planes
figure; showOrthoPlanes(img, [60 80 13]); axis equal;
% show as three orthogonal slices in 3D
figure; showOrthoSlices(img, [60 80 13]); axis equal; view(3); 
axis(physicalExtent(img));
% display as isosurface
figure; isosurface(gaussianFilter(img, [5 5 5], 2), 50);
axis equal; axis(physicalExtent(img)); view([145 25]); light;

Various representations of 3D image using Image class

About

Generic class for representation of 2D/3D...5D images with Matlab

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy