View from the Peak
Recently I decided to learn how to write scripts in the Gimp image editing program to automate certain tasks. The first task I wanted to automate was the Orton effect. This is an effect invented by Michael Orton in the 1990’s, which consists of taking two copies of an image, one blurred, and one sharp, and mixing them to produce an image with a dreamy quality. It is especially well suited to landscape and flower photography.
The Orton effect was originally achieved by taking two photos: a well-focused image that was overexposed by two stops, and an out-of-focus image of the same scene that was overexposed by one stop. These were then printed as slides and sandwiched together to produce the final image.
With digital photography, one way to achieve this effect is to shoot a single raw image of a scene. The raw image can be developed to two JPEGs, one at +1 EV (Exposure Value), and the other at +2. My script blurs the +1 EV image with a two dimensional Gaussian filter with a standard deviation of 40 pixels, loads the second +2 EV image, sharpens it with an unsharp mask, and then overlays the two images. There are a variety of ways the images can be overlaid, but I prefer to multiply them, which enhances the color saturation in light areas. This is done by the Gimp by calculating (blur layer × sharp layer) / 255, which results in the image darkening, and an increase in color saturation.
My Gimp script to do this is available on the Gimp plugin registry.
The soft focus of the colors and the sharpness of the image got me thinking: Is the Orton effect really equivalent to heavily subsampling the chroma channels of the image, and sharpening the luma channel? JPEG and MPEG compression both make use of the fact that the human eye is not as sensitive to chroma (color) as it is to brightness (luma). Typically, both still and video compression uses 4:2:0 chroma subsampling to reduce the number of bits used to represent color information in compressed images without a perceptible quality difference to the human visual system.
I decided to test my theory. It turns out the Gimp has the ability to decompose an image into its YCbCr luma and chroma components used in the JPEG and MPEG compression process.
Once I had the image split into its separate components, the Gimp allowed me to apply my Gaussian filter to just the Cb and Cr components, and then regenerate a new color image from the components.
Unfortunately, as you can see, the image is nothing like the image that underwent Orton processing—my intuition was wrong. However, it is interesting to see just how much one can low-pass filter an image without a huge impact on the image. I increased the standard deviation of my Gaussian filter from 40 pixels to 100 with the following result—the image is still recognizable and doesn’t look too bad, although the color bleeds outside the lines. It’s interesting to note that the resulting JPEG is also smaller because the low-pass filtered chroma information is easier to compress.
Additionally, it is interesting to see what happens if we decompose our squid into RGB components instead of YCbCr and filter two of them with a 100-point deviation Gaussian filter.
Yuck. We can clearly see the advantage of chroma subsampling here over RGB subsampling.
5 Responses to “Creating the Orton Effect in Gimp”
I’d like to include your script into a collection of plugins I’ve packaged for Debian. To be able to do so I need the script to be published under a free open source license, like the BSD license or the GPL. Could you add a proper license to your script?
Thanks and cheers,
I have added an MIT license and re-uploaded it to registry.gimp.org. I also moved the script to Filters->Artistic
Is it supposed to just show text when klicking download in the gimp plugin registry?
That depends on the mime-type sent by the gimp plugin registry website and how your browser is configured to handle it.
Based on the work of Bernd Zeimets (gimp-plugin-registry package debianization) I’ve decided to clean up, extend, tweak and redebianize that package for personal purposes (for now; maybe a PPA payback to the community later). In short, I’ve looked for your script’s version number, which I couldn’t find; so I’ve assumed 2.20100628 (since 1. 20100513 is the very first post time of the script on the GPR site; assumed as initial version) as version, and inserted this in the script next to the copyright license, as below:
;;; LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
;;; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
;;; THE SOFTWARE.
;;; Version: 2.20100628 Copyright © 2010 Ben Mesander
I hope this doesn’t break any copyright, rule, or other considerations, and is OK…
Post a Reply
Cardinal Peak offers fast, ultra-reliable engineering services for Embedded Devices, Mobile & Web Clients and Digital Video. Focused on increasing our clients' engineering ROI, we complement their internal resources with project-based contract engineering, ongoing engineering services and onsite staffing.
Let's Talk About Your Next Project
Why should my company outsource engineering services? What should we look for in a provider?
Expand your in-house engineering team with on-site talent from Cardinal Peak: Experienced, proven engineers that meet Cardinal Peak's high standards.
"Cardinal Peak's personnel worked side-by-side with our own engineers and engineers from other companies on several of our key projects. The Cardinal Peak staff has consistently provided a level of professionalism and technical expertise that we can rely on."
Sherisse Hawkins, VP Software Development, Time Warner Cable