Reflectance and Natural Illumination
from a Single Image

Drexel Vision Group

In this page, you can find a software package for estimating surface reflectance and the (natural) environmental illumination from a single input image of objects with known geometry. This is achieved through a Bayesian formulation with appropriate statistical priors on the reflectance and illumination. The reflectance prior is based on the Directional Statistics BRDF (DSBRDF) model and a suite of programs to analyze and synthesize object appearance using this model are also included. Details on the joint estimation of reflectance and illumination as well as the DSBRDF model can be found in the following publications:

Please cite these references in your paper when this software is used in your research.

About the Software

The code contains:

  • Python code for computing DSBRDF basis functions
  • Code for rendering objects using the DSBRDF model
    • Python/CUDA code for rendering objects using per-pixel surface normals
    • C++ code for rendering objects using PBRT
  • Python code for visualizing DSBRDF parameters values
  • Python/CUDA code for estimating reflectance and natural illumination from a single image

In addition to the program for joint estimation of reflectance and illumination, the package contains a number of additional scripts that are useful for using the DSBRDF model. Please see the included README for more information and detailed instructions on usage.

Please note that this is research software and may contain bugs or other issues – please use it at your own risk. If you experience major problems with it, you may email us, but please note that we do not have the resources to deal with all issues.


The software is written in Python and CUDA and depends on the following libraries:

In addition, you will need a CUDA-capable graphics card.


The software package may be found here.