Sunday, October 6, 2019

Hand Held Bracketing Script - Update

I've slowly been refining my latest, relatively, simple Hand Held Bracketing Script (down load from the right).

This script was developed to allow quick access to the ML Advanced Bracketing (AB) for one specific use case, namely hand holding a wide angle lens in a high dynamic range environment, for example if in a church or cathedral, or if you wish to take some indoor shots.

The latest version respects the AB settings, that is the script will run and reset the AB settings after running. The script will run in LV or non-LV mode, and is agnostic to the AB being on or off. However, the script does switch off the AB after running each bracket sequence.

As I'm not out 'doing photography' at the moment, here is a test bracket sequence I just took with my 5D3 and Rokinon 12mm Fisheye, at F/8: BTW a lens that I find pretty impressive, especially for inside work.

The focus was set at 2*H, for infinity sharpness, ie an infinity blur around 15 microns.

I used ML's ETTR to set the base exposure (but you don't need to use ETTR to set the base exposure), which in this case was 1/100s at ISO 100. I then held the half shutter for just over 3 secs (this is adjustable in the script) and gently released to start the bracket capture, which resulted in a three image bracket set: 1/100s @ ISO 100 + 1/30s @ ISO 100 + 1/30s @ ISO 1600.

The 1/30s was set by the script from the min shutter value I had set in ML's ETTR. The ISO 1600 was my explicit ISO setting in the script, ie I could have set 800 or 3200. The ISO 1600 is, of course, my ISO invariant capture, which guarantees the highest DR capture, ie at the slowest shutter I can tolerate hand holding, ie 1/30s,

The three captures look like this:


These were ingested into Lightroom, and, as I captured an ISO invariant image at 1/30s and ISO 1600, I created an additional virtual copy of this image and increased the exposure in LR by 1 stop.

These four images were then processed in LR's HDR Photo Merge, giving me the following base-processed image, after a little LR tweaking in the develop module.

I then did a round trip to Photoshop and processed the above with FisheyeHemi 2, giving me the following final image in LR, after a little bit more tweaking and transformation.

Bottom line: If you ever need quick access to a handheld bracketing, then this script may be of value. As usual I welcome feedback.

Wednesday, October 2, 2019

Hand Held Bracketing Script - Version 2

A short post to introduce my Magic Lantern latest script: an updated Hand Held Bracketing Script.

The script has been written for a specific use case: namely when you can't use a tripod and you are in a high dynamic range environment, eg like a cathedral, and a single image, dual-ISO or not, isn't sufficient.

In addition, the use case is best exploited with a wide angle lens, ie focal length less than, say, 30mm.

The script is based on your base exposure being set for the highlights, eg following an ETTR. But you can set the base exposure anyway you wish. In addition the script makes use of the minimum shutter setting in the ML ETTR menu: so this must be set, eg at 1/30s, say.

The script 'exploits' the fact that Canon cameras exhibit ISO in-variance above a certain ISO, usually around 1600. Setting the ISO above this in the camera is usually pointless, ie all you are doing is reducing photon capture. Of course, your shooting needs may dictate higher ISOs, eg shutter speed: but that is your choice.

The script's menu allows you to control the script's functionality:

On or Off simply does what it says.

Delay allows you to add an additional delay before the script functions.

ISO logic allows you to select the bracketing ISO, eg "Float", "800", "1600" or "3200". If float is selected the ISO bracket will be taken at the ISO Ev lift, as set in the next menu item. Thus, if the base ISO is 100 and the Ev lift is set to 3, the ISO bracket will be taken at ISO 800.

If the ISO logic is set to an explicit value, eg 3200, the maximum ISO bracket will be taken at that value, irrespective of the base ISO value.

The script is triggered by doing a long half-shutter press of more than 3 seconds.

The script will take either two or three brackets. 

If the base shutter is equal to or slower than the ETTR min shutter setting, then the script will take two brackets:
  • Min Shutter at base ISO
  • Min Shutter at the higher ISO
If the base shutter is faster than the ETTR min shutter setting, the script will take three brackets:
  • Base Shutter at base ISO
  • Min Shutter at the base ISO
  • Min Shutter at the higher ISO
The script sets up ML's advanced bracketing, so you don't need to worry about any starting values. However, at the moment, the script doesn't reset the advanced bracketing back to the start condition. In fact the advanced bracketing is left on.

To illustrate the output from the script, I used my 5D3 with an IRIX 11mm at F/4. The test subject was inside my house, looking up at the ceiling lights. I ETTRed, with a min shutter of 1/30s, to generate a base shutter of 1/125s at an ISO 100. I set the explicit ISO to 3200.

The script took the following three exposures:


I ingested these into Lightroom and used LR's HDR Photo Merge to generate the following image:

As usual I welcome any feedback on the script, ie its usability or ideas to make it better.

Sunday, September 1, 2019

Further thoughts on 'virtual' 645 Photography

Previously I have written about the Vizelex RhinoCam, that allows me to use Mamiya 645 lenses with my crop sensor EOSM.

With the recent update to Lightroom, I thought I would see if this version coped better than the previous version, when stitching the 645 panos.

I used my 35mm Mamiya lens and focused at just beyond the hyperfocal, noting that at this format the 'just acceptable', circle of confusion is some 48 microns, compared to about 30 microns on my full frame 5D3.

I framed the image using the viewing screen (which is upside down of course) and, using Magic Lantern, set Dual-ISO and then ETTRed for the highlights. I switched between the various ML states using my Cycler script.

The eight base images looked like this, after ingesting into Lightroom and Dual-ISO processing:

I next selected the eight images for stitching and used the LR pano merge feature, which after a bit of LR tweaking resulted in this 645 image, ie taken through a 645 lens at full field of view coverage, resulting in a 12300x9670 image (scaled to 6000x4714 here).

Bottom line:just because you have a cropped sensor camera, ie an EOSM, it doesn't restrict you to exploring other camera formats, all the way up to 645 :-)

Friday, August 16, 2019

Thank You Adobe

For anyone processing brackets, you will know about 'the trick' of going into the Library module, repeatedly selecting your bracket sets and using (PC) Alt-G to place them in a stack. Once in a stack you could then run LR/EnFuse in batch mode: but Lightroom's HDR merge did not recognise the stacks!

Thus you had to individually send each stack to LR's HDR Merge...until now.

Lightroom's latest release now includes a batch mode functionality for its merge tool, so you can batch process exposure brackets.

As a simple test, I took an exposure and focus stack with my EOSM3, using my CHDK M3 script.

I set the camera to F/8 at 11mm and (inadvertently) left the camera on ISO1000. Using the CHDK histogram I set an ETTR base exposure, set up the script to focus stack from the lens minimum focus and to take an additional (Zero Noise) exposure, at each focus, at +4Ev. Finally I set the overlap to 20 microns (which established the hyperfocal in the script, H) and the infinity shot to 3 x H, ie an infinity shot at about 7 microns.

This resulted in 6 focus brackets, four from the lens focus minimum to about H/3, one at H and one at 3H.

After ingesting into LR I first put each of the 6 focus bracketed exposure sets into a stack. Then I selected the 6 stacks and selected the LR HDR merge, which, with its new functionality, created 6 HDR images, that is one for each focus point.

This was followed by a round trip to Helicon Focus and voila I ended up with the, non ISO100, test shot.

As I say, thank you Adobe.

Postscript: here is another test image, this time at ISO100 ;-). Only needed 8 images, ie 4 focus brackets, each with 2 exposures.

Postscript-Postscript: and what the 12mm Rokinon Fisheye sees from the same position, defished with FishEye-Hemi.

Sunday, August 11, 2019

Fisheye doesn't mean super distorted

As I mentioned the Rokinon (or Samyang) 12mm Fisheye in the last post, I thought I would say a few more words about this bargain of a lens, which looks like this:

As I previously said, its field of view is 180 degrees on a full frame, so what does that look like, out of the lens (BTW these are just handheld snaps that I just took to show the FOV):

The fisheye distortion can be clearly seem, but after using Fisheye-Hemi, which corrects for the verticals, you get this:

Note how well Fisheye-Hemi does in protecting the FOV.

As a further comparison, let's look at what a 12mm shot looks like from my 12-24mm WA Sigma lens: taken from the same sitting position.

Chalk and cheese.

Bottom line: if you haven't got a fisheye lens, I can certainly recommend the Rokinon option. It's fun and can produce some great looking images, especially in tight corners.

Saturday, August 10, 2019

It pays to remember what you have previously bought!

Recently I have spent a lot of time ensuring my various cameras (5D3, EoSMs, EoSM3, G1X and G7X) can run my auto exposure and focus bracketing scripts.

But what if you haven't got CHDK or Magic Lantern running on your camera, ie you're not a Canon shooter? What if you are a Canon shooter but have manual lenses?

Well, all is not lost as we will see in this post.

As we know, shooting wide allows us to shoot close, albeit with some distortion, unless you use quality lenses. For example, my Irix 11mm f/4 lens has a 126° full frame, diagonal field of view without any noticeable distortions. But can I go wider?

The answer is, of course, yes. But now we need to explore fisheye lenses.

Luckly, I remembered, as I haven't used it for nearly five years, I have a 12mm, full frame, Rokinon Fisheye; which has a 180 degree field of view.

So I thought I would do a quick experiment, using my EoSM3, with an EFM-EOS adapter.

I used my M3 CHDK script to capture two exposures (a base ETTR and a +4Ev one for the shadows). I set the lens aperture to F/8 and focused at the hyperfocal, using the depth of field scale (having confirmed it was calibrated OK).

Having taken one set of exposures at the hyperfocal, I then took two more sets so I had three, contiguous focus brackets. That is six images in all.

I ingested these into Lightroom and used the LR HDR merge to create three HDR focus brackets, which I defringed and corrected for exposure.

I then did a round trip to Helicon Focus and ended up with this image:

I then did a round trip to Photoshop, where I used Fisheye Hemi to correct for the verticals, giving me this final image, after tweaking a little more in LR

Bottom line: I don't think you can beat the Rokinon 12mm Fisheye for quality at a low price.

Friday, August 9, 2019

More cameras!!

As some are aware, I love technology; and I like it better when it is cheap!

Today's camera manufacturers are doing a great service to those, like me, that love playing with cheap technology. As they keep pushing out new camera versions, their previous releases end up on eBay or one of the secondhand camera resellers.

In the last six months I've picked up a secondhand G1X and G7X, so that I can play around with CHDK scripting. A month ago I extended my collection with a second hand EOS-M3 body, as I already have EF-M lenses. Plus I added in an electronic viewfinder: a version 2.

Once I loaded CHDK, and got a little help from some CHDK experts, I started scripting and now have a focus and exposure bracketing script that seems to run pretty well.

As usual the script is accessible from the download page on the right.

The script is simple to use, but you will need to understand a few things:
  • The script scales everything from the overlap blur (in microns)
  • For the EOSM format, an overlap between 15-20 should be OK, but you can go less or more than this. Just note that the smaller the overlap, the more images will be taken.
  • You can specify an infinity shot that will generate an infinity blur of the overlap blur divided by your setting. Thus if the overlap was, say, 20 microns, and you stated the infinity shot should be 2, the infinity blur will be 10 microns.
  • You have three focus options. None, obviously will do what it says. X2INF focus brackets from the currently set focus to the infinity focus. M2INF first moves the lens to the minimum focus distance of the lens, then brackets to the infinity point.
  • At each focus you can additionally grab exposure brackets. The script assumes your base exposure is an ETTR one, thus use the CHDK histogram to set the exposure, eg so that the overexposure (red) dot just disappears. The exposure options are: base + 1 @ +2Ev, or base + 1 @ +3Ev, or base + 1 @ +4Ev, or base + 2 @ +2Ev and +4Ev, or 2 @ ISO100 and ISO1600
  • I've added in a 'nudge' factor. This may be useful when at the macro end, where the depth of field is very small. The fact is that lens position control is not that fine, so don't expect to be mm accurate. I would suggest a nudge of between 10-20mm.
  • You can turn the screen off when bracketing.
  • You can ask for a dark frame, bookend, image to be added at the beginning and end of the bracketing sequence.
  • You can add a delay in seconds.
  • Finally, the script uses the split lens approach I have previously posted about. Thus if you have registered a lens, the script will calculate the 'pseudo lens thickness'. Remember that all the depth of field calculations are made from the lens front principal plane, which the manufacturers don't tell us. Where as the lens distances that CHDK uses are taken from the sensor plane. To register a lens, just amend the script with your lens minimum focus distance, the maximum magnification (measured or taken from the spec), and the minimum and maximum focal length (which will be the same for a prime). If you don't register your lens the script allows you to run in simple thin lens mode (thickness = 0) or you can 'guess' a lens thickness in mm.
As for post processing: as usual that's down to you. As an illustration, the attached test image was captured at F/8, with an M2INF and ZN3 option (ZN = Zero Noise, ie the shot for the shadows). That is, 14 images, 7 focus points plus 2 exposures at each. 

I post processed in Lightroom. First by enfusing the exposures with LR/Enfuse, having adjusted the RAWs first. BTW, go to the library mode and manually select each pair of exposures, then use Ctrl G to stack them, once you have then stacked you can use LR/Enfuse in batch mode. I then did a round trip to Helicon Focus.