A method comprising: receiving a two-dimensional image to be converted to a first three-dimensional image; identifying a second three-dimensional image from a plurality of three-dimensional images based on the second three-dimensional image being visually similar to the two-dimensional image that is to be converted, and wherein the second three-dimensional image was previously created from a conversion of another two-dimensional image; computing, by a processing device, a feature-to-depth mapping function based on an approximate depth map associated with the second three-dimensional image wherein a feature comprises a color value of a pixel of the second three dimensional image and wherein computing the feature-to-depth mapping function comprises: identifying a plurality of bins within a color space in order to reduce the number of colors taken into account by the mapping function; associating a plurality of pixels of the second three-dimensional image with the plurality of bins; determining a depth value for each of the plurality of bins; and determining a weight value for each of the plurality of bins, wherein the weight value for each bin is a function of the ratio of occupancy within said bin and the average occupancy for any bin; and wherein the weight value is used for smoothing the mapping function by reassigning the depth value of at least one bin with a weighted average of said at least one bin's neighboring bins; applying the feature-to-depth mapping function to a plurality of pixels of the two-dimensional image to determine a depth value for each of the plurality of pixels by associating the depth value for each of the plurality of pixels based on a feature of the two-dimensional image; and generating the first three-dimensional image based on the depth values for the plurality of pixels of the two-dimensional image. receiving a two-dimensional image to be converted to a first three-dimensional image; identifying a second three-dimensional image from a plurality of three-dimensional images based on the second three-dimensional image being visually similar to the two-dimensional image that is to be converted, and wherein the second three-dimensional image was previously created from a conversion of another two-dimensional image; computing, by a processing device, a feature-to-depth mapping function based on an approximate depth map associated with the second three-dimensional image wherein a feature comprises a color value of a pixel of the second three dimensional image and wherein computing the feature-to-depth mapping function comprises: identifying a plurality of bins within a color space in order to reduce the number of colors taken into account by the mapping function; associating a plurality of pixels of the second three-dimensional image with the plurality of bins; determining a depth value for each of the plurality of bins; and determining a weight value for each of the plurality of bins, wherein the weight value for each bin is a function of the ratio of occupancy within said bin and the average occupancy for any bin; and wherein the weight value is used for smoothing the mapping function by reassigning the depth value of at least one bin with a weighted average of said at least one bin's neighboring bins; identifying a plurality of bins within a color space in order to reduce the number of colors taken into account by the mapping function; associating a plurality of pixels of the second three-dimensional image with the plurality of bins; determining a depth value for each of the plurality of bins; and determining a weight value for each of the plurality of bins, wherein the weight value for each bin is a function of the ratio of occupancy within said bin and the average occupancy for any bin; and wherein the weight value is used for smoothing the mapping function by reassigning the depth value of at least one bin with a weighted average of said at least one bin's neighboring bins; applying the feature-to-depth mapping function to a plurality of pixels of the two-dimensional image to determine a depth value for each of the plurality of pixels by associating the depth value for each of the plurality of pixels based on a feature of the two-dimensional image; and generating the first three-dimensional image based on the depth values for the plurality of pixels of the two-dimensional image.