Image contrast when using labeloverlay

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

 Risposta accettata

DGM
DGM il 7 Mar 2022
Modificato: DGM il 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 Commenti

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)
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.

Accedi per commentare.

Più risposte (0)

Prodotti

Release

R2021a

Richiesto:

il 7 Mar 2022

Commentato:

DGM
il 10 Mar 2022

Community Treasure Hunt

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

Start Hunting!

Translated by