X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?p=CreaPhase.git;a=blobdiff_plain;f=octave_packages%2Fimage-1.0.15%2Fim2bw.m;fp=octave_packages%2Fimage-1.0.15%2Fim2bw.m;h=fd96d16e8039f126b307a4bbeae71d01eae193ff;hp=0000000000000000000000000000000000000000;hb=c880e8788dfc484bf23ce13fa2787f2c6bca4863;hpb=1705066eceaaea976f010f669ce8e972f3734b05 diff --git a/octave_packages/image-1.0.15/im2bw.m b/octave_packages/image-1.0.15/im2bw.m new file mode 100644 index 0000000..fd96d16 --- /dev/null +++ b/octave_packages/image-1.0.15/im2bw.m @@ -0,0 +1,72 @@ +## Copyright (C) 2000 Kai Habel +## +## This program is free software; you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 2 of the License, or +## (at your option) any later version. +## +## This program is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with this program; If not, see . + +## -*- texinfo -*- +## @deftypefn {Function File} @var{BW}= im2bw (@var{I},threshold) +## @deftypefnx {Function File} @var{BW}= im2bw (@var{X},@var{cmap},threshold) +## Converts image data types to a black-white (binary) image. +## The treshold value should be in the range [0,1]. +## @end deftypefn + +## Author: Kai Habel +## Date: 19. March 2000 + +function BW = im2bw (img, a, b) + if (nargin < 2 || nargin > 3) + usage("im2bw: number of arguments must be 2 or 3"); + endif + + ## Convert img to gray scale + if (isrgb(img)) + img = rgb2gray(img); + if (nargin != 2) + error("im2bw: two input arguments must be given when the image is a color image"); + endif + t = a; + elseif (isind (img) && ismatrix(a) && columns (a) == 3) + img = ind2gray (img, a); + if (nargin != 3) + error("im2bw: three input arguments must be given when the image is indexed"); + endif + t = b; + elseif (isgray(img)) + if (nargin != 2) + error("im2bw: two input arguments must be given when the image is gray scale"); + endif + t = a; + else + error ("im2bw: first input argument must be an image"); + endif + + ## Do the thresholding + if (isscalar (t)) + if (t < 0 || t > 1) + error("im2bw: threshold must be in the interval [0, 1]"); + endif + switch (class(img)) + case {"double", "single"} + BW = (img >= t); + case {"uint8"} + BW = (img >= 255*t); + case {"uint16"} + BW = (img >= 65535*t); + otherwise + error("im2bw: unsupport image class"); + endswitch + else + error ("im2bw: threshold value must be scalar"); + endif + +endfunction