Image Processing Toolbox™ supports four methods to generate a binary mask. The binary mask defines a
region of interest (ROI) of the original image. Mask pixel values of
1 indicate the image pixel belongs to the ROI. Mask pixel values
0 indicate the image pixel is part of the background.
Any binary image can be used as a mask, provided that the binary image is the same size as the image being filtered.
You can create a mask from a grayscale image by classifying each pixel as
belonging to either the region of interest or the background. For example, suppose
you want to filter the grayscale image
I, filtering only those
pixels whose values are greater than 0.5. You can create the appropriate mask with
BW = (I > 0.5)
This example shows to create a binary mask using one of the ROI creation functions, such as
drawcircle, with the mask creation function
Read an image into the workspace and display it.
img = imread('pout.tif'); h_im = imshow(img);
Create an ROI on the image using one of the ROI creation functions.
circ = drawcircle('Center',[113,66],'Radius',60);
Create a binary mask from the ROI using
createMask function returns a binary image the same size as the input image. The pixels inside the ROI are set to 1 and the pixel values everywhere else are set to 0.
BW = createMask(circ); imshow(BW)
You can use the
roicolor function to define an ROI
based on color or intensity range.
You can use the
poly2mask function to create a
binary mask without having an associated image. Unlike the
poly2mask does not
require an input image. You specify the vertices of the ROI in two vectors and
specify the size of the binary mask returned. For example, the following creates a
binary mask that can be used to filter an ROI in the
c = [123 123 170 170]; r = [160 210 210 160]; m = 291; % height of pout image n = 240; % width of pout image BW = poly2mask(c,r,m,n); imshow(BW)