
How to convert nearest pixel as same number of pixels value from gray image? like bwlabel?
6 views (last 30 days)
Show older comments
How to convert nearest pixel as same number of pixels value from gray image? like bwlabel?
0 Comments
Answers (1)
Charu
on 5 May 2025
Edited: Charu
on 8 May 2025
Hello Voxey,
According to my understanding of the question you want to label connected components in a grayscale image.
The function “bwlabel” works only for binary images, for grayscale images, you can use “bwlabeln” with logical conditions You can also use “bwconncomp” and “labelmatrix” functions in a loop for each unique value.
You can refer to the steps mentioned below to get label connected components in a grayscale image:
- Let I be the grayscale image.
I = [
1 1 2 2;
1 0 0 2;
3 3 0 2
];
- Find the unique values (excluding background e.g.:0)
vals = unique(I);
vals(vals == 0) = [];
% Remove background if needed
- Initialse label matrix
L = zeros(size(I));
label_count = 0;
- Loop through each value and label connected components.
L = zeros(size(I), 'double');
% Make sure L is double
label_count = 0;
for k = 1:length(vals)
mask = I == vals(k);
CC = bwconncomp(mask, 8);
% 8-connectivity for 2D images
temp_labels = double(labelmatrix(CC)); % Convert to double
temp_labels(temp_labels > 0) = temp_labels(temp_labels > 0) + label_count;
L(mask) = temp_labels(mask);
label_count = max(L(:));
end
L is the labelled image and each connected region of the same value has a unique label.
Here is the image generated on sample data, with unique label for grayscale:

For more information on the functions, kindly refer to the link of MathWorks documentation mentioned below:
-bwlabeln:
-bwconncomp:
Hope this helps!
0 Comments
See Also
Categories
Find more on Modify Image Colors in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!