home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
vis-ftp.cs.umass.edu
/
vis-ftp.cs.umass.edu.tar
/
vis-ftp.cs.umass.edu
/
pub
/
Software
/
ASCENDER
/
ascender.tar.Z
/
ascender.tar
/
Terrain
/
terrain-tools.lisp
< prev
Wrap
Lisp/Scheme
|
1995-09-11
|
969b
|
23 lines
(in-package 'cme)
(defun make-registered-terrain-image (image)
"Make a new image, aligned with the given image, with each pixel
value being the terrain elevation for that backprojected pixel."
(let ((2d-transform (image-to-2d-transform image))
(3d-projection (3d-to-2d-projection (2d-world image)))
(terrain (find-terrain-model (3d-world image))))
(when (and 2d-transform 3d-projection terrain)
(let ((result (ic::make-image
(list (image-x-dim image) (image-y-dim image))
:element-type 'single-float)))
(dotimes (j (image-y-dim image))
(dotimes (i (image-x-dim image))
(multiple-value-bind (u v)
(transform-point 2d-transform (float i) (float j))
(multiple-value-bind (x y z)
(project-to-world 3d-projection u v terrain)
(setf (iref result i j) (or z 0.0))))))
result))))