From 6ea901d7ded9383f9aa30598a25e87e611702eb6 Mon Sep 17 00:00:00 2001 From: "Kevin M. Rosenberg" Date: Sat, 23 Apr 2005 12:09:26 +0000 Subject: [PATCH] r10458: --- cameras.lisp | 12 +++++++++--- package.lisp | 3 ++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/cameras.lisp b/cameras.lisp index 293b219..515c61e 100644 --- a/cameras.lisp +++ b/cameras.lisp @@ -39,14 +39,14 @@ (:format :d100 :make "Nikon" :pixels (3037 . 2024) :imager (23.7 . 15.6) :name "D100") (:format :d70 :make "Nikon" :pixels (3008 . 2000) :imager (23.7 . 15.6) :name "D70") (:format :d70s :make "Nikon" :pixels (3008 . 2000) :imager (23.7 . 15.6) :name "D70s") - (:format :d50 :make "Nikon" :pixels (3008 . 2000) :imager (23.7 . 15.6) :name "D70") + (:format :d50 :make "Nikon" :pixels (3008 . 2000) :imager (23.7 . 15.6) :name "D50") (:format :d1x :make "Nikon" :pixels (4028 . 1324) :imager (23.7 . 15.6) :name "D1X") (:format :d2h :make "Nikon" :pixels (2464 . 1632) :imager (23.3 . 15.5) :name "D2H") (:format :d2hs :make "Nikon" :pixels (2464 . 1632) :imager (23.3 . 15.5) :name "D2Hs") (:format :300d :make "Canon" :pixels (3072 . 2048) :imager (22.7 . 15.1) :name "300D") (:format :10d :make "Canon" :pixels (3072 . 2048) :imager (22.7 . 15.1) :name "10D") - (:format :d30 :make "Canon" :pixels (0 . 0) :imager (22.7 . 15.1) :name "D30") + (:format :d30 :make "Canon" :pixels (2160 . 1440) :imager (22 . 14.9) :name "D30") (:format :d60 :make "Canon" :pixels (3072 . 2048) :imager (22.7 . 15.1) :name "D60") (:format :350d :make "Canon" :pixels (3456 . 2304) :imager (22.2 . 14.8) :name "350D") (:format :1d :make "Canon" :pixels (2464 . 1648) :imager (27 . 17.8) :name "1D") @@ -127,7 +127,7 @@ the number of megapixels of the sensor. FORMAT should be defined if the CAMERA-SPEC is the number of megapixels so the proper aspect ratio is used." (etypecase sensor-spec - (keyword + ((or string keyword) (getf (find-format sensor-spec) :pixels)) (number (sensor-dimensions-megapixels format sensor-spec)))) @@ -136,6 +136,12 @@ so the proper aspect ratio is used." "Returns the imager dimensions in mm of a FORMAT." (getf (find-format format-spec) :imager)) +(defun pixel-size (format-spec) + "Return pixel size in micrometers." + (let ((pixel-dim (pixel-dimensions format-spec)) + (imager-dim (imager-dimensions format-spec))) + (values (* 1000 (/ (car imager-dim) (car pixel-dim))) + (* 1000 (/ (cdr imager-dim) (cdr pixel-dim)))))) (defun output-dimensions (format-spec) "Returns the output dimensions in mm of a FORMAT." (getf (find-format format-spec) :output)) diff --git a/package.lisp b/package.lisp index 093e46f..7a337ac 100644 --- a/package.lisp +++ b/package.lisp @@ -26,6 +26,7 @@ ;; cameras.lisp #:pixel-dimensions + #:pixel-size #:imager-dimensions #:output-dimensions #:*digital-cameras* @@ -49,7 +50,7 @@ #:hyperfocal #:effective-aperture #:rayleigh-limit - #:maximum-sharpness-calculator + #:maximum-sharpness-aperture ;; tables.lisp #:hyperfocal-table -- 2.34.1