8d147cc513
et al. 2003 method for the photometric calibration of cameras and for the recovery of high dynamic range (HDR) images from the set of low dynamic range (LDR) exposures. WWW: http://www.mpii.mpg.de/resources/hdr/calibration/pfs.html PR: ports/118388 Submitted by: argv[0] (Iouri V. Ivliev)
96 lines
2.2 KiB
Text
96 lines
2.2 KiB
Text
--- src/jpeg2hdrgen.orig Wed Aug 23 07:25:58 2006
|
|
+++ src/jpeg2hdrgen Thu Jun 21 14:34:33 2007
|
|
@@ -28,18 +28,25 @@
|
|
export LC_ALL
|
|
|
|
|
|
-JHEAD="jhead" # program for extracting exif info from jpegs
|
|
-
|
|
-TEST_JHEAD=`which jhead`;
|
|
-if [ "$TEST_JHEAD" = "" ]; then
|
|
- echo "Program 'jhead' is required to run this script."
|
|
- echo "Install appropriate software, for example from:"
|
|
- echo "http://www.sentex.net/~mwandel/jhead/"
|
|
+JHEAD='jhead' # program for extracting exif info from jpegs
|
|
+EXIF='exif' # another one
|
|
+EXIV2='exiv2' # and one more
|
|
+
|
|
+CMD=`which ${JHEAD}`
|
|
+[ -n "${CMD}" ] || CMD=`which ${EXIF}`
|
|
+[ -n "${CMD}" ] || CMD=`which ${EXIV2}`
|
|
+if [ -z "${CMD}" ]
|
|
+then
|
|
+ cat <<MSG
|
|
+One of the following commands are required to run this script:
|
|
+ '${JHEAD}' - stand-alone program (http://www.sentex.net/~mwandel/jhead/)
|
|
+ '${EXIF}' - part of libexif project (http://sf.net/projects/libexif/)
|
|
+ '${EXIV2}' - part of exiv2 project (http://www.exiv2.org/)
|
|
+MSG
|
|
exit 1;
|
|
fi
|
|
|
|
-#Note: Double backslash MUST be put in front of each $ sign
|
|
-AWK_PROGRAM=`cat <<EOF
|
|
+AWK_PROGRAM='
|
|
BEGIN {
|
|
exposure="";
|
|
aperture="";
|
|
@@ -58,23 +65,49 @@
|
|
print exposure " " aperture " " iso_speed " 0";
|
|
}
|
|
|
|
+## jhead output
|
|
/^Exposure time: ([0-9]*\.[0-9]) */ {
|
|
- exposure = 1/\\$3;
|
|
+ exposure = 1/$3;
|
|
}
|
|
-
|
|
/^Aperture *: f\/([0-9]*\.[0-9]*)/ {
|
|
- aperture = substr(\\$3,3);
|
|
+ aperture = substr($3,3);
|
|
}
|
|
-
|
|
/^ISO equiv. *: ([0-9]*\.?[0-9]*)/ {
|
|
- iso_speed = \\$4;
|
|
+ iso_speed = $4;
|
|
}
|
|
|
|
-EOF`
|
|
+## exif output
|
|
+/^Exposure Time *\|.+ sec\./ {
|
|
+ if (split(substr($3,2),a,"/") == 2)
|
|
+ exposure = a[2];
|
|
+ else
|
|
+ exposure = 1/a[1];
|
|
+}
|
|
+/^FNumber *\|f\/.+/ {
|
|
+ aperture = substr($2,4);
|
|
+}
|
|
+/^ISO Speed Ratings *\|.+/ {
|
|
+ iso_speed = substr($4,2);
|
|
+}
|
|
|
|
-while [ "$1" != "" ]; do
|
|
- EXPOSURE_INFO=`$JHEAD $1 | awk "$AWK_PROGRAM"`
|
|
- echo $1 $EXPOSURE_INFO
|
|
+## exiv2 output
|
|
+/^Exposure time *: .+ s/ {
|
|
+ if (split($4,a,"/") == 2)
|
|
+ exposure = a[2];
|
|
+ else
|
|
+ exposure = 1/a[1];
|
|
+}
|
|
+/^Aperture *: F.+/ {
|
|
+ aperture = substr($3,2);
|
|
+}
|
|
+/^ISO speed *: .+/ {
|
|
+ iso_speed = $4;
|
|
+}
|
|
+'
|
|
|
|
+while [ ${#} -ne 0 ]
|
|
+do
|
|
+ printf "${1} "
|
|
+ ${CMD} "${1}" | awk "${AWK_PROGRAM}"
|
|
shift
|
|
done
|