How to binarize an image by keeping the NaNs and using a threshold?

5 vues (au cours des 30 derniers jours)
Lequette Kevin
Lequette Kevin le 28 Jan 2019
Commenté : Walter Roberson le 29 Jan 2019
Hello,
I am a novice with Matlab. I have a 3D array with NaNs, corresponding to the outside of an porous object. I would like binarize this image (units 8) with a treshold equal to 15. To do it, I used:
Bimg = imgd3 >15;
The binarization works but when I do it, the NaNs become 0 value. I want to keep the NaNs because they correspond to the outside of my object.
Any idea ?
Thank :)

Réponse acceptée

Matt J
Matt J le 28 Jan 2019
nanmap=isnan(imgd3);
Bimg = imgd3 >15;
Bimg(nanmap)=nan;
  2 commentaires
Lequette Kevin
Lequette Kevin le 29 Jan 2019
Modifié(e) : Lequette Kevin le 29 Jan 2019
Thank Matt J for your answer. However, when I used this code, there is a error message:
NaN's cannot be converted to logicals.
But if I do this:
nanmap=isnan(imgd3);
Bimg = double(imgd3 >15);
Bimg(nanmap)=nan;
It works ^^ Thank for your help!
Walter Roberson
Walter Roberson le 29 Jan 2019
By definition, binary only has 2 values, not three. Not 0, 1, or nan.
You should be storing your mask in a different array.

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by