Rodrick Megraw

CSEP576 Project 3 - Photometric Stereo

Winter 2005

Discussion: My results colsely match those of the sample solution. My calculation for the light directions differs slightly from that of the sample solution, but the normals calculated are not noticalble different. Calculating the light directions, normals, and albedos was straight forward. I had difficulty with the depth calculation due to a counting error that caused the resulting surface to be striped. I attempted to implement the whistle to weight edge constraints by the pixel intensity. For each pixel I found the average intensity across the input images and then weighted the surface constraints by these values. This yielded som pretty strange results, and I have included the source code as sepatare files and 2 examples of the surface normals produced in the tlast row of the table below.

We can see that the photometric stereo method has some faults. While the buddha was generally free of artifacts, the cat and owl both have some errors when compared to the original images. The cat suffers from a disappearing eye. At some angles the light was such that the normals give no detail to the cat's right eye. Perhaps this could be remedied with additional photos and light positions. The owl's eye's also suffer from surface artifacts. It seems that the reflective surface of the owl's eye did not work well with the lambertian model. Perhaps this could have been fixed with more photos and light angles as well.

A major drawback of the method also seems to be the requirement for specially produced source images.Overall this was a fun project and I enjoyed the challenge. The results are very fun.

Buddha Cat Owl
RGB Encoded Normals
Needle Map
Albedo Map
Surface View #1 w/out Albedos
Surface View #1 w/ Albedos
Surface View #2 w/out Albedos
Surface View #2 w/ Albedos
Whistle: surface view weighed edge constraints