Dear list,

I am trying to implement a vignetting correction on a fish-eye image

taken with a rather inexpensive lens (Opteka 0.20 for Canon A570).

This is for a Post Occupancy Evaluation of an open plan workspace

using HDR at a number of workstations (n = ~15), paired with subjective

measures. (Thus the inexpensive camera + lens).

I am using Mehlika Inanici and Jim Galvin's method to derive a

polynomial from experimentation

to characterize the vignetting effect of my camera+lens at a given f-stop.

(EVALUATION OF HIGH DYNAMIC RANGE PHOTOGRAPHY

AS A LUMINANCE MAPPING TECHNIQUE, 2004)

"The vignetting effect is calculated as a polynomial function as

follows (x corresponds the pixel location):"

y = -1.28E -12 * x 4 + 3.43E - 09 * x3 - 3.38E - 06 * x2 +1.45E - 03 *

x + 7.70E - 01

Assuming the function that i derive is similar to the one above:

***I am curious how to develop a Radiance-based post-process from

this polynomial function to arrive at a script that will take a HDR

image and apply a vignette correction.

Below is Greg's implementation, but i am confused as to where to

apply/insert the polynomial function. (Or if an entirely different method is

being used here, since to me this is pretty cryptic).

## ···

#####################################################

# From NY Times acquisition cart (Sigma lens)

pcomb -e 'sq(x):x*x' -e \

'SigmaVig5_6(deg) : 0.97 + (0.5 + atan(0.1*deg - 4)/PI)*(0.38 -

0.0134*deg)' \

-e 'xne = x/xmax - .5; yne = y/ymax - .5' \

-e "deg_cent = 90*sqrt(sq(2/$vfrac*xne) + sq(2/$vfrac*yne))" \

-e 'corr = if(deg_cent-95, 0, 1.0/SigmaVig5_6(deg_cent))' \

-e 'ro=corr*ri(1);go=corr*gi(1);bo=corr*bi(1)' \

-o $hdrf \

> pcompos -x $new_res[1] -y $new_res[2] \=00 - \

`ev "floor($new_res[1]/2)" "floor($new_res[2]/2)"` \

> /tmp/corr$$.hdr

#####################################################

I would appreciate any guidance that anyone may have!

One suggestion that I have received is to create a "filter" image with

the same resolution as my uncorrected image. The filter image will have

numbers 1 in the middle (meaning no vignetting) and the numbers drop

towards the periphery as measured and recorded.

Then I would use pcomb to divide the original image with the "filter"

to correct for the light loss.

Any suggestions (sample code!) to create this filter image in Radiance

from the above polynomial

function would also be appreciated!

best,

Kyle Konis

Ph.D Student

UC Berkeley