How to binarize a grayscale image with multiple thresholds?

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?

 採用された回答

Akira Agata
Akira Agata 2020 年 9 月 12 日
編集済み: Akira Agata 2020 年 9 月 12 日

0 投票

Assuming a grayscale image img is a 2D double array, the following code should work:
b = img > t1 | img < t2;

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeConvert Image Type についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by