Create a small sample matrix containing three regions.
BW = logical([1 1 1 0 0 0 0 0
1 1 1 0 1 1 0 0
1 1 1 0 1 1 0 0
1 1 1 0 0 0 0 0
1 1 1 0 0 0 1 0
1 1 1 0 0 0 1 0
1 1 1 0 0 1 1 0
1 1 1 0 0 0 0 0]);
Create a label matrix from this sample image.
L = bwlabel(BW)
L = 8×8
1 1 1 0 0 0 0 0
1 1 1 0 2 2 0 0
1 1 1 0 2 2 0 0
1 1 1 0 0 0 0 0
1 1 1 0 0 0 3 0
1 1 1 0 0 0 3 0
1 1 1 0 0 3 3 0
1 1 1 0 0 0 0 0
Get a linear index list of all the pixels in each region. The function returns a cell array with an element for each region it finds in the label matrix.
pixelIndexList = label2idx(L)
pixelIndexList=1×3 cell array
{24x1 double} {4x1 double} {4x1 double}
Examine one of the pixel index lists returned. For example, look at the second cell in the returned cell array. It contains the linear indices for all the pixels in the region labeled "2". The upper left corner of the region is pixel BW(2,5), which is the 34th pixel in linear indexing.
pixelIndexList{2}
ans = 4×1
34
35
42
43