I am trying to convert a grayscale image into a binary image with two thresholds:
  • img = a grayscale image
  • b = the output binary image
  • if (img > t1) or (img < t2) then b = 1
  • otherwise b = 0
t1 = 200;
t2 = 100;
src = imread('an rgb image');
img = reg2gray(src);
b1 = imbinarize(img, t1);
b2 = imbinarize(img, -t2);
b = imadd(b1,b2);
but this code doesn't work. Is there a function to set multiple thresholds at the same time?

 Réponse acceptée

Akira Agata
Akira Agata le 12 Sep 2020
Modifié(e) : Akira Agata le 12 Sep 2020
Assuming a grayscale image img is a 2D double array, the following code should work:
b = img > t1 | img < t2;

Plus de réponses (0)

Catégories

En savoir plus sur Convert Image Type dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by