Luminance contrast calculation

Hi,

I'm trying to calculate luminance contrast between various surfaces or
Radiance image, and compare it to recommended values.
Idea is to calculate for each suface (eg. paper, desk, walls, floor etc)
average luminance, and obtain contrast as ratio between these luminances

Question: How to calculate average luminance for a surface on Radiance
image?
My first idea was to identify pixels for each surface, and calculate their
average luminance as simple average value:
*Average_lum = sum(pixel_luminance)/num_of_surface_pixels,*
where only pixels for specific surface are taken into account.

But after some thinking, maybe that wouldn't be correct approach.
Maybe solid angle of each pixel should be taken into account to have
physically correct value
*Average_lum =
sum(pixel_luminance*pixel_solid_angle)/sum(pixel_solid_angle), *
where only pixels for specific surface are taken into account.

So my real question would be: if we calculate average luminance for some
part of radiance image, should we take into account size of each pixel
(solid angle) or not?

···

###
Related to contrast calculation I'm still thinking if images I'm rendering
and analysing should be hemispherical (like for evalglare) or have some
human-like field of vision (-vtv -vh 110 -vv 70 for example)
Suggestions?

###
Another question is more theoretical - when we are talking about contrasts,
should we take into account average values (for work task, environment
surfaces etc), or extreme values like maximal luminance.

I know this question is somewhat close to glare calculation, so maybe Jan
has some experience with luminance calculation for various surfaces on the
scene.

Thanks in advance,
Marija

Did no one respond to this?

There isn't really such a thing as "average luminance" for a surface. It has to be "average luminance for a surface from a specific view," which sounds like what you are discussing. In this context, I don't think it makes much difference whether you average by pixel solid angle or not, as it tends to change slowly over an image. Similarly, the view type does not matter very much to the result.

If you actually want to know the significance of an object's luminance to glare or the like, then you don't want to average luminance at all -- you want the contribution to vertical illuminance as a sum of pixels times projected solid angle. For this, simply adding up pixels from a hemispherical fisheye is the easiest method.

The whole notion of luminance contrasts in a viewing environment is ill-conceived in my opinion. Originally, the rule of thumb was a maximum contrast ratio of 3:1, which no reasonable space actually achieves. One specular highlight will ruin your whole metric!

Cheers,
-Greg

···

From: Marija Velickovic <[email protected]>
Date: June 18, 2013 3:16:21 AM PDT

Hi,

I'm trying to calculate luminance contrast between various surfaces or Radiance image, and compare it to recommended values.
Idea is to calculate for each suface (eg. paper, desk, walls, floor etc) average luminance, and obtain contrast as ratio between these luminances

Question: How to calculate average luminance for a surface on Radiance image?
My first idea was to identify pixels for each surface, and calculate their average luminance as simple average value:
Average_lum = sum(pixel_luminance)/num_of_surface_pixels,
where only pixels for specific surface are taken into account.

But after some thinking, maybe that wouldn't be correct approach.
Maybe solid angle of each pixel should be taken into account to have physically correct value
Average_lum = sum(pixel_luminance*pixel_solid_angle)/sum(pixel_solid_angle),
where only pixels for specific surface are taken into account.

So my real question would be: if we calculate average luminance for some part of radiance image, should we take into account size of each pixel (solid angle) or not?

###
Related to contrast calculation I'm still thinking if images I'm rendering and analysing should be hemispherical (like for evalglare) or have some human-like field of vision (-vtv -vh 110 -vv 70 for example)
Suggestions?

###
Another question is more theoretical - when we are talking about contrasts, should we take into account average values (for work task, environment surfaces etc), or extreme values like maximal luminance.

I know this question is somewhat close to glare calculation, so maybe Jan has some experience with luminance calculation for various surfaces on the scene.

Thanks in advance,
Marija

_______________________________________________
Radiance-general mailing list
[email protected]
http://www.radiance-online.org/mailman/listinfo/radiance-general

Hi Marija,

there are two issues:
1. metric
2. how to calculate technically

regarding metrics, the whole thing is not as easy. Definitely the DGP doesn't catch contrast related glare, when the "contrast" is located directly besides the task. For example, if you are investigating a computer workplace in an open plan office and just above your computer screen is located in the far a window. In this case users might experience glare, even for very low luminances, which are also no problem regarding reflectances on the computer screen. In that case, a ratio 1:3 seems reasonable, but is also not proven by any user assessments so far (at least to my knowledge). But what happens, when this contrast is more displaced from viewing position? This is not clear to me how to handle. Of course you could evaluate on the "safe side", saying in a 30° cone you allow only 1:3, outside that cone 1:10.
Regarding using max or mean of a surface, I would say it depends. If you have really a peak (lets say a specular reflection of the sun), then you should take it into account as glare source (and weight it with its solid angle). This glare is captured pretty good by the DGP, but I wouldn't use the luminance of it for a contrast evaluation. For the contrast I would use the average luminance of the surface of your interest.

how to calculate contrast for your surfaces: technically you can use evalglare for this. I'm currently on a plane and can't check the web-site, but as far as I can remember I had a tutorial for that in my presentation at the radiance workshop in 2009 in Boston (seminar in advance to the workshop). The trick is using masks. basically you have to generate a image only containing your surfaces of interest, having the correct luminances. then run evalglare in a way, that each surface will be one glare source and evaluate them with the -d option. You may reduce the search radius (-r option).
Your mask should contain only the surfaces, which you want to investigate (=calculate the average luminance of this surface). In the case of HDR images, I used simple photoshop to mark the area of interest (-> make them black). In case of simulations, it is easier, since you can just change the reflectance of your surfaces of interest to zero and generate an masking image. If the surfaces are not touching each other, you can evaluate all the surfaces also at once. The masking command I used was pcomb /input.pic/--s -1000 /mask.pic/> /eval.pic./ Using the -d option of evalglare (and switching off the peak extraction by -x) you get provided all found glare sources, including position in x-y coordinates, solid angle and average luminance. You should check by the -c option, if evalglare detects the surfaces properly. Each found glare source should correspond then your surfaces of interest. Don't use any of the glare metrics then, just the information of the glare sources.

Good luck!Best,

Jan

···

On 06/21/2013 08:58 PM, Greg Ward wrote:

Did no one respond to this?

There isn't really such a thing as "average luminance" for a surface. It has to be "average luminance for a surface from a specific view," which sounds like what you are discussing. In this context, I don't think it makes much difference whether you average by pixel solid angle or not, as it tends to change slowly over an image. Similarly, the view type does not matter very much to the result.

If you actually want to know the significance of an object's luminance to glare or the like, then you don't want to average luminance at all -- you want the contribution to vertical illuminance as a sum of pixels times projected solid angle. For this, simply adding up pixels from a hemispherical fisheye is the easiest method.

The whole notion of luminance contrasts in a viewing environment is ill-conceived in my opinion. Originally, the rule of thumb was a maximum contrast ratio of 3:1, which no reasonable space actually achieves. One specular highlight will ruin your whole metric!

Cheers,
-Greg

*From: *Marija Velickovic <[email protected] <mailto:[email protected]>>

*Date: *June 18, 2013 3:16:21 AM PDT

*

Hi,

I'm trying to calculate luminance contrast between various surfaces or Radiance image, and compare it to recommended values.
Idea is to calculate for each suface (eg. paper, desk, walls, floor etc) average luminance, and obtain contrast as ratio between these luminances

Question: How to calculate average luminance for a surface on Radiance image?
My first idea was to identify pixels for each surface, and calculate their average luminance as simple average value:
/Average_lum = sum(pixel_luminance)/num_of_surface_pixels,/
where only pixels for specific surface are taken into account.

But after some thinking, maybe that wouldn't be correct approach.
Maybe solid angle of each pixel should be taken into account to have physically correct value
/Average_lum = sum(pixel_luminance*pixel_solid_angle)/sum(pixel_solid_angle), /
where only pixels for specific surface are taken into account.

So my real question would be: if we calculate average luminance for some part of radiance image, should we take into account size of each pixel (solid angle) or not?

###
Related to contrast calculation I'm still thinking if images I'm rendering and analysing should be hemispherical (like for evalglare) or have some human-like field of vision (-vtv -vh 110 -vv 70 for example)
Suggestions?

###
Another question is more theoretical - when we are talking about contrasts, should we take into account average values (for work task, environment surfaces etc), or extreme values like maximal luminance.

I know this question is somewhat close to glare calculation, so maybe Jan has some experience with luminance calculation for various surfaces on the scene.

Thanks in advance,
Marija

_______________________________________________
Radiance-general mailing list
[email protected] <mailto:[email protected]>
http://www.radiance-online.org/mailman/listinfo/radiance-general

_______________________________________________
Radiance-general mailing list
[email protected]
http://www.radiance-online.org/mailman/listinfo/radiance-general

--
Dr.-Ing. Jan Wienold
Head of Team Passive Systems and Daylighting
Fraunhofer-Institut für Solare Energiesysteme
Thermal Systems and Buildings
Heidenhofstr. 2, 79110 Freiburg, Germany
Phone: +49(0)761 4588 5133 Fax:+49(0)761 4588 9133
[email protected]

In office:
Mo,Tue: 8:30-18:00
We,Thu: 8:30-16:00
Fr: 8:30-15:30

Hi Greg and Jan,

Thanks for input. Although contrast requirements, like 3:1, are often
mentioned, I haven't found some nice discussion on practical issues and
calculation, so it is very useful to hear and learn something useful on
this topic.

···

###
Related to Gregs' answer, I agree with you that calculation of surfaces
contrast is rather not well defined. I have a request for a project to
calculate contrast values, while definition of contrast itself is not very
precise.

As you said we can calculate either average or maximum - but values can
vary extremely. This is especially visible in daylight offices, with clear
skiy and sun light coming directly into the space. As Jan said, if sun
reflection is visible, it will give extremely high light peak - and extreme
contrast.
(Generally I don't think these contrast related things are defined well
enough)

Related to Jans' answer about surfaces luminance, I haven't tried the
method you suggest (I'll read your presentation), with evalglare and masked
images.

Instead, I use method like this:

   - I use rtrace with -ovs or -ovm option turned on (so I detect materials
   or surface for each pixel).
   - Calculate image with rtrace and same parameters and ambient file -to
   have it faster,
   - From image extract with pcomb/pvalue solid angles for each pixel.
   - After these steps I have for each pixel info about its solid angle,
   radiance and material.
   - I analyse these data with Python numpy library to extract average
   values for all surfaces/materials in the scene.

Maybe there is some more automatic way to do this with Radiance commands
only (without numpy), but I couldn't find it, and since I'm writing program
in Python it was not a problem to use numpy library.

Thanks again,
Marija