clem 0.4.1, ch-asdf 0.2.8, ch-util 0.2.2, lift 1.3.1, darcs ignored, smarkup 0.3.3
[CommonLispStat.git] / external / clem / src / normalize.lisp
blob7301a41de190305f5129de0393cf6e944b8dfa1c
2 (in-package :clem)
4 (defmethod normalize ((u matrix) &key (normin) (normax) (truncate nil) (copy nil))
5 (let ((min (min-val u))
6 (max (max-val u))
7 (nmin (if normin normin 0))
8 (nmax (if normax normax 255))
9 (u (if copy (mat-copy u) u)))
10 (let ((slope (if (= max min)
12 (/ (- nmax nmin) (- max min)))))
13 (map-set-val-fit u #'(lambda (x) (+ nmin (* slope (- x min))))
14 :truncate truncate))
15 u))
17 (defmethod norm-0-255 ((u matrix) &key copy)
18 (normalize u :normin 0 :normax 255 :copy copy))
20 (defmethod norm-0-1 ((u matrix) &key copy)
21 (normalize u :normin 0 :normax 1 :copy copy))