MATLAB Answers

labelling image but getting error during overlay

53 views (last 30 days)
Raza Ali
Raza Ali on 5 Sep 2019
Answered: Obaid Rafiq Jan on 18 Nov 2020 at 8:53
I am labelling an image using MATLAB image labeler. But when i use labeloverlay commnad in MATLAB to map original and labeled image it gives error "Pixel label image has scalar pixel label IDs instead of RGB-triplet pixel label IDs". I can only understand that the labeled image is black and white and for overlaying command it needs RGB labeled image.
how to use these labeld images ? or how to resolve this error

  4 Comments

Show 1 older comment
Raza Ali
Raza Ali on 10 Sep 2019
1.png is original image and 11.png is labeld
Kritika Bansal
Kritika Bansal on 12 Sep 2019
Hi,
Can you also post the command that led to this error in MATLAB?
Raza Ali
Raza Ali on 13 Sep 2019
imageDir= fullfile('img');
labelDir= fullfile('PL');
classNames = ["A", "B"];
labelIDs = [0 0 0; 1 1 1];
imds = imageDatastore(imageDir);
pxds = pixelLabelDatastore(labelDir,classNames,labelIDs);
I = read(imds);
C = read(pxds);
Error using matlab.io.datastore.PixelLabelDatastore.label2cat (line 1033)
Pixel label image has scalar pixel label IDs instead of RGB-triplet pixel label IDs.

Sign in to comment.

Answers (1)

Obaid Rafiq Jan
Obaid Rafiq Jan on 18 Nov 2020 at 8:53
Hi Raza,
I was stuck on the same problem as you however, mine was the opposite. Instead you can try [0 1] which would make sense for a scalar quantity. The array that you defined for your pixel labels is an RGB triplet value which is what I should have done and it works for me. So if anyone else is having the same error as you, they just need to define each label's absolute scalar value as [x x] while if someone is having the opposite problem, they can try [x y z; x y z], where x y and z are the RGB absolute values.

  0 Comments

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!