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
|