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

4 Ansichten (letzte 30 Tage)
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 :)

Akzeptierte Antwort

Matt J
Matt J am 28 Jan. 2019
nanmap=isnan(imgd3);
Bimg = imgd3 >15;
Bimg(nanmap)=nan;
  2 Kommentare
Lequette Kevin
Lequette Kevin am 29 Jan. 2019
Bearbeitet: Lequette Kevin am 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 am 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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by