Perspective across scales (Spores molds and fungus* – recap)

*Actually just lichens and a moldy avocado

Take your right hand and cover your left eye. Keeping both eyes wide open, look at an object halfway across the room. You can now “see through your hand.”** Your brain compiles the world around you into a single image that we intuitively equate with media such as photography and video, but in fact (as evidenced by your brain ignoring your hand occluding half your visual inputs) this mental image of the world is compiled from two different perspectives. Therefore, the processing side of the human visual system is very well set up to interpret sterographic images. Some people complain about this but you can always file a bug report with reality if it becomes too much trouble.

Human binocular vision works pretty well at scales where the inter-ocular distance provides a noticeable difference in perspective, but not for objects that are very close or very far away. This is why distant mountains look flat [citation needed], and we don’t have good spatial intuition for very small objects, either. Stereophotography can improve our intuition of objects outside of the scales of our usual experience. By modifying the distance between two viewpoints, we can enhance our experience of perspective

For these stereo photos of lichens, I used a macro bellows with a perspective control lens. This type of lens is use for fixing vanishing lines in architectural photography or for making things look tiny that aren’t, but in this case it makes a useful tool for shifting perspective by a few centimetres.



It would probably be easier to move the sample instead.


The images below require a pair of red blue filters or 3D glasses to shepherd a different perspective image into each eye, for spatial interpretation in your meat-based visual processor.






Another way to generate the illusion of dimensionality is parallax. This is a good way to judge depth when your eyes are on opposite sides of your head.





**If you currently have use of only a single eye, the same effect can be achieved by holding the eye of a needle or other object thinner than your pupil directly in front of the active eye. This is something that Leonardo (the blue one) remarked on, and suggests the similarities in imaging with a relatively large aperture (like your dilated pupil) and an “image” reconciled from multiple images at different perspectives, e.g. as binocular vision.

The advantages of parametric design

I work primarily in OpenSCAD when making designs for 3D printing (and 2D designs for lasercutting). This means that instead of a WYSIWYG interface based primarily on using the mouse, my designs are all scripted in a programming language that looks a lot like C. This might seem a bit more difficult at first (and it is certainly less than ideal for some situations) but it makes for a pretty simple way to generate repetitive structural elements in basic flow control, i.e. for loops. Even more important, it means that I can substantially change a design by modifying the variable values passed to a function (called modules in OpenSCAD). For the sake of an example, take Lieberkühn reflectors for macrophotography. Lieberkühn reflectors are a classic illumination technique that have mostly fallen out of style in favour of more modern illumination such as LED or fibre-based lighting, but remains quite elegant and offers a few unique advantages. I have been working with these in conjunction with a few different lenses, and mostly with the help of a macro bellows. The bellows makes for variable working distances as well as magnifications, so the focus of one Lieberkühn will be the most effective only within a narrow range of macro-bellows lengths. Parametric designs such as the ones I create and work with in OpenSCAD allow me to change attributes such as the nominal working distance without starting each design from scratch. For example:


35mm Lieberkühn focus


30mm Lieberkühn focus


25mm Lieberkühn focus


20mm Lieberkühn focus

This approach has proven highly useful for me in terms of both creating highly customisable design and iterating to get fit just right. I’ll post results of my latest exploration of Lieberkühn reflectors soon after I receive the latest realisation in Shapeways bronzed steel.

Quantitative comparisons of #macrophotography with and without Lieberkühn reflectors

In order to quantitatively examine the effect of the the 3D printed Lieberkühn reflectors I described previously, I came up with two image quality metrics relevant to their use, both measured on the “dark side” of the image subject. The metrics we will look at today are average intensity and, as a measure of contrast, the standard deviation of pixel values on a line trace.

I’ll be using the Megachile photo from the previous post for these analyses.

The first line trace begins at right eye and extends back behind the wing:




If we plot these values together, we see that the photo taken with the Lieberkühn (values in black) is brighter and brings out a lot more detail, while the photo taken without is relatively flat and dark. We see similar results for second and third traces, taken across the tegula and along the wing.







If we compare the average values:

octave3.2:25> mean(RE523(:,2)) %with Lieberkühn, right eye trace
ans = 102.00
octave3.2:26> mean(RE524(:,2))%w/o Lieberkühn, right eye trace
ans = 54.093
octave3.2:28> mean(AT523(:,2))%with Lieberkühn, trace across tegula
ans = 81.553
octave3.2:27> mean(AT524(:,2))%w/o Lieberkühn, trace across tegula
ans = 51.288
octave3.2:29> mean(W523(:,2))%with Lieberkühn, across the wing
ans = 103.85
octave3.2:30> mean(W524(:,2))%w/o Lieberkühn, across the wing
ans = 53.045

We see that taken together, the averages of the plots from the photo taken with the Lieberkühn are about 80% brighter than those without.

mean(Lieberkühn)/mean(no Lieberkühn) = 1.8142

octave3.2:56> std(RE523(:,2)))%with Lieberkühn, right eye trace
ans = 20.316
octave3.2:55> std(RE524(:,2))%w/o Lieberkühn, right eye trace
ans = 7.3926

octave3.2:54> std(AT523(:,2))%with Lieberkühn, trace across tegula
ans = 17.737
octave3.2:53> std(AT524(:,2))%w/o Lieberkühn, trace across tegula
ans = 13.227

octave3.2:52> std(W523(:,2))%with Lieberkühn, across the wing
ans = 12.746
octave3.2:51> std(W524(:,2))%w/o Lieberkühn, across the wing
ans = 8.2902

Using standard deviation as a metric for image detail, we get an increase of about 75% in standard deviation over the dark photo by using the reflector.

octave3.2:30> (20.316+17.737+12.746)/(7.3926+13.227+8.2902)
ans = 1.7572

The averages, standard deviation etc. may seem a bit redundant at this point; you don’t need to plot a pixel-value profile to see that the image with the reflector is much brighter and more detailed than the photo taken without. Rather than “proving” that the Lieberkühn photos are better, these notes will serve as a baseline for future iterations of the reflectors made with different materials and/or with the addition of a reflective coating.