CHDK Wiki
CHDK Wiki
Advertisement

Shutter Bracketing[]

Written for/on: Canon A640
Also works on: Other Canon AXXX (Not tested), A620 (tested - works fine)

Shutter Bracketing by Johan Van Barel (http://www.vanbarel.tk)

The purpose is to create a High Dynamic Range (HDR) image from a set of images taken at different exposures.

The script takes a number of images around the selected shutter speed. So if you take 3 pictures, with shutter speed set to 1/250" and Step Size=3 (=1EV), it will take the first picture at 1/500", the second at 1/250" and the third at 1/125". You can later stitch the images together with a program like Photomatix (http://www.hdrsoft.com/index.html)

ps. There seems to be a minor bug in the set_tv command. After the script has finished, the display does not show the actual shutter speed value. You can check this by half-pressing the shoot button. This will update the display to the correct internal shutter speed value.

Documentation/Help (save as a small ShutterBracket.txt" file to your /CHDK/SCRIPTS/ folder)


Select M mode on your Canon A640 and manually select your desired center shutter speed.

Parameters:

  • Number of Pics (Default=3)
  • Shutter Step Size (1/3 EV) (Default=3)
  • Initial Delay (Sec) (Default=1)

Script Code (save as "ShutterBracket.bas" to your /CHDK/SCRIPTS/ folder)

rem Johan Van Barel 30-03-2008
rem Shutter-Bracketing for Canon A640

@title Shutter Bracket (Select M Mode)
@param a Number of Pics
@default a 3
@param b Shutter Step Size (1/3 EV)
@default b 3
@param c Initial Delay (Sec)
@default c 1

if a<2 then let a=2
if b<1 then let b=1
if c<0 then let c=0

print "Pics:"; a, "Step:"; b

sleep c*1000

get_user_tv_id x

set_tv_rel (a-1)*b/2

for s=1 to a
    get_user_tv_id t
    gosub "showshutter"
    shoot
    set_tv_rel -b
next s

set_tv x

end

:showshutter

if t=-13 then print "Pic", s, "of", a, "T=15s"
if t=-12 then print "Pic", s, "of", a, "T=13s"
if t=-11 then print "Pic", s, "of", a, "T=10s"
if t=-10 then print "Pic", s, "of", a, "T=..s"
if t=-9  then print "Pic", s, "of", a, "T=8s"
if t=-8  then print "Pic", s, "of", a, "T=6s"
if t=-7  then print "Pic", s, "of", a, "T=5s"
if t=-6  then print "Pic", s, "of", a, "T=4s"
if t=-5  then print "Pic", s, "of", a, "T=3.2s"
if t=-4  then print "Pic", s, "of", a, "T=2.5s"
if t=-3  then print "Pic", s, "of", a, "T=2s"
if t=-2  then print "Pic", s, "of", a, "T=1.6s"
if t=-1  then print "Pic", s, "of", a, "T=1.3s"
if t=0   then print "Pic", s, "of", a, "T=1s"
if t=1   then print "Pic", s, "of", a, "T=0.8s"
if t=2   then print "Pic", s, "of", a, "T=0.6s"
if t=3   then print "Pic", s, "of", a, "T=0.5s"
if t=4   then print "Pic", s, "of", a, "T=0.4s"
if t=5   then print "Pic", s, "of", a, "T=0.3s"
if t=6   then print "Pic", s, "of", a, "T=1/4s"
if t=7   then print "Pic", s, "of", a, "T=1/5s"
if t=8   then print "Pic", s, "of", a, "T=1/6s"
if t=9   then print "Pic", s, "of", a, "T=1/8s"
if t=10  then print "Pic", s, "of", a, "T=1/10s"
if t=11  then print "Pic", s, "of", a, "T=1/13s"
if t=12  then print "Pic", s, "of", a, "T=1/15s"
if t=13  then print "Pic", s, "of", a, "T=1/20s"
if t=14  then print "Pic", s, "of", a, "T=1/25s"
if t=15  then print "Pic", s, "of", a, "T=1/30s"
if t=16  then print "Pic", s, "of", a, "T=1/40s"
if t=17  then print "Pic", s, "of", a, "T=1/50s"
if t=18  then print "Pic", s, "of", a, "T=1/60s"
if t=19  then print "Pic", s, "of", a, "T=1/80s"
if t=20  then print "Pic", s, "of", a, "T=1/100s"
if t=21  then print "Pic", s, "of", a, "T=1/125s"
if t=22  then print "Pic", s, "of", a, "T=1/160s"
if t=23  then print "Pic", s, "of", a, "T=1/200s"
if t=24  then print "Pic", s, "of", a, "T=1/250s"
if t=25  then print "Pic", s, "of", a, "T=1/320s"
if t=26  then print "Pic", s, "of", a, "T=1/400s"
if t=27  then print "Pic", s, "of", a, "T=1/500s"
if t=28  then print "Pic", s, "of", a, "T=1/640s"
if t=29  then print "Pic", s, "of", a, "T=..s"
if t=30  then print "Pic", s, "of", a, "T=1/800s"
if t=31  then print "Pic", s, "of", a, "T=1/1000s"
if t=32  then print "Pic", s, "of", a, "T=1/1250s"
if t=33  then print "Pic", s, "of", a, "T=1/1600s"
if t=34  then print "Pic", s, "of", a, "T=1/2000s"
if t=35  then print "Pic", s, "of", a, "T=1/2500s"

return
Advertisement