Project Report

Introduction

            In this project, I used the images of the chrome ball to recover the light directions, and then calculate the surface normals and albedos of an object. Finally, the z values for each pixel on the surface were attained by using the least square surface fitting method. I chose sparse matrices to avoid the huge memory consumption.

Result

Three objects were selected in this project, horse, owl and rock. The RGB encoded normals are shown as following

The albedos in R,G and B channels sequentially:

Horse:

Owl:

Rock:

The recovered surfaces in 2 views:

Horse:

Owl:

Rock:

 

Discussion

When I calculated the normals of the surfaces, I used the average of R, G and B values as the intensity of each pixel. I also separately used R, G and B values as intensities and got 3 different normals for each pixel. It was obviously incorrect because there is only one fixed normal for a particular point on the surface. The question is, if I use pure light source (red, green or blue) to do the experiment, can we get the same results about the normals? I think they should be the same.