1. A method of determining three-dimensional data from two-dimensional image data comprising: inputting into signal processing circuitry at least one two-dimensional image of an object comprising different colors and/or polarizations, the at least one two-dimensional image being divisible into at least two component images having different colors and/or polarizations; such that there is a change of intensity from one component image to another, using signal processing circuitry, performing optical flow analysis to calculate surface depth profiles from the plurality of component two-dimensional images utilizing vectors indicating changes in intensities of color and/or polarization between the component images to calculate surface depth profiles from the plurality of component two-dimensional images; and resolving three-dimensional data relating to the image from the plurality of component images and surface depth profiles to create a three-dimensional surface; whereby different polarizations and/or colors interact with surfaces differently so that by dividing an image into component images containing different polarizations and/or colors one can derive optical flow from changes in intensities of the colors and/or polarizations.