X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?p=CreaPhase.git;a=blobdiff_plain;f=octave_packages%2Fimage-1.0.15%2Fimhist.m;fp=octave_packages%2Fimage-1.0.15%2Fimhist.m;h=768d3c7d9b5e2918b3979b8f4d9f177bbd2c3856;hp=0000000000000000000000000000000000000000;hb=c880e8788dfc484bf23ce13fa2787f2c6bca4863;hpb=1705066eceaaea976f010f669ce8e972f3734b05 diff --git a/octave_packages/image-1.0.15/imhist.m b/octave_packages/image-1.0.15/imhist.m new file mode 100644 index 0000000..768d3c7 --- /dev/null +++ b/octave_packages/image-1.0.15/imhist.m @@ -0,0 +1,71 @@ +## Copyright (C) 1999,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} {} imhist (@var{I},@var{n}) +## @deftypefnx {Function File} {} imhist (@var{I}) +## @deftypefnx {Function File} {} imhist (@var{X},@var{cmap}) +## @deftypefnx {Function File} {[@var{n,x}] = } imhist (...) +## Shows the histogram of an image using hist. +## @seealso{hist} +## @end deftypefn + +## Author: Kai Habel +## July 2000 : Paul Kienzle code simplification for hist() call. + +function [varargout] = imhist (I, b) + + if (nargin < 1 || nargin > 2) + print_usage(); + endif + + b_is_colormap = 0; + + if (nargin == 2) + if (ismatrix (b)) + b_is_colormap = (columns (b) == 3); + endif + endif + + if (b_is_colormap) + ## assuming I is an indexed image + ## b is colormap + max_idx = max (max (I)); + bins = rows (b); + if (max_idx > bins) + warning ("largest index exceedes length of colormap"); + endif + else + ## assuming I is an intensity image + ## b is number of bins + if (nargin == 1) + bins = 256; + else + bins = b; + endif + + ## scale image to range [0,1] + I = mat2gray (I); + endif + + if (nargout == 2) + [nn,xx] = hist (I(:), bins); + vr_val_cnt = 1; varargout{vr_val_cnt++} = nn; + varargout{vr_val_cnt++} = xx; + else + hist (I(:), bins); + endif + +endfunction