Clear Filters
Clear Filters

Image contrast when using labeloverlay

3 views (last 30 days)
Matt K.
Matt K. on 7 Mar 2022
Commented: DGM on 10 Mar 2022
Hi,
I have setup an image datastore and a pixel label datastore for some semantic image segmentation I'd like to do and I used some code in an example to show some overlays from some images within my image/pixel lists:
for i=81:85
im=readimage(imds,i);
C=readimage(pxds,i);
B=labeloverlay(im,C,'transparency',0.5);
figure,imshow(B);
end
However, when I do this, I find that the display range for the image is too wide:
Is there a way to change display range of the background image? It's an int16 image with a [min max] range of [0 4741]
Thanks for your help,
Matt

Accepted Answer

DGM
DGM on 7 Mar 2022
Edited: DGM on 7 Mar 2022
Try putting your images on a common scale.
im = mat2gray(im);
C = mat2gray(C);
This will put both images in the range [0 1].
  2 Comments
Matt K.
Matt K. on 10 Mar 2022
Thanks! That did the trick.
I see that the image was rescaled to [0,1], but I'm not sure how this worked as C is a categorical matrix (?)
In any case, it now looks the way that it should look:
(a different slice than in the original question)
DGM
DGM on 10 Mar 2022
I ... really don't know what to say about the categorical array part. I almost never use categoricals for anything, and I never use datastore stuff so I'm not sure what to expect. At least it seems to be working.

Sign in to comment.

More Answers (0)

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!