Could a script improve optical stabilization (IS) - or lower the quality of it? - General Help and Assistance on using CHDK stable releases - CHDK Forum supplierdeeply

Could a script improve optical stabilization (IS) - or lower the quality of it?

  • 7 Replies
  • 1798 Views
Advertisements
Today, I am using this simple script to take photos on USB voltage:
Question is; does it influence the quality of IS ?
Is there other tricks I can do, to improve the quality of pictures, especially when taken from a camera in motion, at lower light ?

this is a IXY900 (850IS)

Thank you.
------------------------------
@title Remote button
while 1
  wait_click 1
  if is_key "remote" then shoot
wend
end
------------------------------

*

Offline fe50

  • ******
  • 3099
  • IXUS50 & 860, SX10 Star WARs-Star RAWs
    • fe50
Question is; does it influence the quality of IS ?
USB remote doesn't influence the camera's settings like exposure or IS...

I were thinking that "then shoot" should maybe be replaced by something that worked as if I depressed shutter half-ways, waited for focus, maybe even waited for IS to have a match between optical movement and accelerometer output, then shoot :)

so "shoot" does not imply "just take a picture, fast, in "quick & dirty" way ?   - it's actually as good as a slow manual trigging ?

*

Offline fudgey

  • *****
  • 1705
  • a570is
If IS is enabled, it is enabled. None of the ways scripts commonly trigger the shooting process (shoot(), press("shoot_half")->press("shoot_full") and motion detector immediate trigger) effect your IS setting in any way. If it's is enabled, it should work no matter how you shoot.


That said, it would probably be possible to modify CHDK in a way that would somewhat improve shooting success by monitoring the accelerometer parameters and delaying the exact moment of exposure if the camera is in motion. This could be useful e.g. in bike-installed timelapses, preventing blurry shots on bumps (and as a side effect, introducing unwanted phase noise in the sampling period).


*

Offline fe50

  • ******
  • 3099
  • IXUS50 & 860, SX10 Star WARs-Star RAWs
    • fe50
@Andre-K:
The shoot() command internally is a combination of shoot-half + shoot full, the "one-for-all" command.
You can also do this manually with the corresponding press/release/click commands, this will give you a bit more control in a script (this is also necessary on some older IXUS series cameras: the shoot() command sometimes does not work correctly there).
E.g. to get the fastest possible reaction with MD (motion detection): first you do a press("shoot_half") for focusing & adjusting the settings - then the script waits until motion is detected & captures the images as fast as possible, without a delay for focusing etc.
You may have a look to fudgey's beautiful "Fast MD with burst/preview mode" script to see how this method works...

You may also use the "multiple command" method to set your own overwrites after the camera has focused...

@fudgey:
I guess the IS (AFAIK all Powershots with IS use a lens-shift type mechanism) can't be controlled as fast as we should do this ??

*

Offline fudgey

  • *****
  • 1705
  • a570is
I guess the IS (AFAIK all Powershots with IS use a lens-shift type mechanism) can't be controlled as fast as we should do this ??

Controlled != monitored ;)

The idea would be to sit in a tight loop that traps the shooting process, looking at data from the IS and proceeding only if there doesn't seem to be too much movement there (or a timeout is achieved). If IS doesn't have much to do and is only adjusting slightly near its middle position (a static camera), we have a better chance of getting a good photo than we do if IS is wildly swinging from one extreme limit to another (brutely shaken camera).

Of course if this method would always make photos a lot better, cameras would already be doing it... but there could also be applications similar to the anti md script.

*

Offline fe50

  • ******
  • 3099
  • IXUS50 & 860, SX10 Star WARs-Star RAWs
    • fe50
The idea would be to sit in a tight loop that traps the shooting process, looking at data from the IS and proceeding only if there doesn't seem to be too much movement there (or a timeout is achieved).
Thx, now i got it :)

You could always try the SDM  'shoot_when_camera_steady' uBasic command :-

http://stereo.jpn.org/eng/sdm/ubasic.htm

Example script :-

@title Camera shake
@param a sensitivity
@default a 128
sync_off
:md_loop
b=0
print "About to shoot"
shoot_when_camera_steady a, b
print N," ", b
N = N + 1
sleep_for_seconds 5
goto "md_loop"
end



 

Related Topics