r10458:
authorKevin M. Rosenberg <kevin@rosenberg.net>
Sat, 23 Apr 2005 12:09:26 +0000 (12:09 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Sat, 23 Apr 2005 12:09:26 +0000 (12:09 +0000)
cameras.lisp
package.lisp

index 293b21955a108dcc153716bf4c2d018c59254b34..515c61effeae7d0b3f4ff0d068a9108782584dd0 100644 (file)
     (: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))
index 093e46fbb6e5909b3a91ba13c8f462f40fb75650..7a337ac02dbb8a6794ec3616e8f385e8d589c7f8 100644 (file)
@@ -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