Method and apparatus for removing general lens distortion from images
First Claim
1. A computer-implemented method, comprising:
- rendering, by one or more computing devices, an output image from an input image, wherein the input image has general geometric distortion, wherein the general geometric distortion includes at least one radial distortion component and at least one tangential distortion component, and wherein said rendering an output image comprises;
rendering each one-dimensional element in a first planar dimension of the input image to generate pixel values in a corresponding one-dimensional element in the first planar dimension of an intermediate buffer, wherein said rendering comprises, for each pixel in each element in the first planar dimension of the intermediate buffer;
calculating a pixel coordinate in the first planar dimension, wherein the calculated pixel coordinate in the first planar dimension accounts for at least a portion of the general geometric distortion of the input image in the first planar dimension; and
performing interpolation at the calculated pixel coordinate in the first planar dimension in the input image to generate a pixel value for the current pixel in the intermediate buffer; and
rendering each one-dimensional element in a second planar dimension of the intermediate buffer to generate pixel values in a corresponding one-dimensional element in the second planar dimension of the output image, wherein said rendering comprises, for each pixel in each element in the second planar dimension of the output image;
calculating a pixel coordinate in the second planar dimension, wherein the calculated pixel coordinate in the second planar dimension accounts for at least a portion of the general geometric distortion of the input image in the second planar dimension; and
performing interpolation at the distorted pixel coordinate in the second planar dimension in the intermediate image to generate a pixel value for the current pixel in the output image;
wherein at least a portion of the general geometric distortion present in the input image is not present in the output image.
2 Assignments
0 Petitions
Accused Products
Abstract
Method and apparatus for removing general geometric lens distortion from images. A geometric distortion removal algorithm is implemented according to a general 5-parameter distortion model that includes both radial and tangential lens distortion components. The algorithm may be implemented in a two-stage process in which one-dimensional elements in one planar dimension (rows or columns) of an input image with geometric distortion are rendered to generate an intermediate buffer, and then one-dimensional elements in the other planar dimension (columns or rows) of the intermediate buffer are rendered to generate an output image with geometric distortion reduced or removed. Thus, one-dimensional sampling is performed, and interpolation is performed in one planar dimension, rather than 2-D interpolation. An input row or column may be decimated, if necessary, before row or column interpolation is performed to generate an output row or column. Since decimation is performed in one dimension, aliasing artifacts may be prevented.
-
Citations
29 Claims
-
1. A computer-implemented method, comprising:
-
rendering, by one or more computing devices, an output image from an input image, wherein the input image has general geometric distortion, wherein the general geometric distortion includes at least one radial distortion component and at least one tangential distortion component, and wherein said rendering an output image comprises; rendering each one-dimensional element in a first planar dimension of the input image to generate pixel values in a corresponding one-dimensional element in the first planar dimension of an intermediate buffer, wherein said rendering comprises, for each pixel in each element in the first planar dimension of the intermediate buffer; calculating a pixel coordinate in the first planar dimension, wherein the calculated pixel coordinate in the first planar dimension accounts for at least a portion of the general geometric distortion of the input image in the first planar dimension; and performing interpolation at the calculated pixel coordinate in the first planar dimension in the input image to generate a pixel value for the current pixel in the intermediate buffer; and rendering each one-dimensional element in a second planar dimension of the intermediate buffer to generate pixel values in a corresponding one-dimensional element in the second planar dimension of the output image, wherein said rendering comprises, for each pixel in each element in the second planar dimension of the output image; calculating a pixel coordinate in the second planar dimension, wherein the calculated pixel coordinate in the second planar dimension accounts for at least a portion of the general geometric distortion of the input image in the second planar dimension; and performing interpolation at the distorted pixel coordinate in the second planar dimension in the intermediate image to generate a pixel value for the current pixel in the output image; wherein at least a portion of the general geometric distortion present in the input image is not present in the output image. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system, comprising:
-
at least one processor; and a memory comprising program instructions, wherein the program instructions are executable by the at least one processor to render an output image from an input image, wherein the input image has general geometric distortion, wherein the general geometric distortion includes at least one radial distortion component and at least one tangential distortion component, and wherein, to render an output image, the program instructions are executable by the at least one processor to; render each one-dimensional element in a first planar dimension of the input image to generate pixel values in a corresponding one-dimensional element in the first planar dimension of an intermediate buffer, wherein, to perform said rendering, the program instructions are executable by the at least one processor to, for each pixel in each element in the first planar dimension of the intermediate buffer; calculate a pixel coordinate in the first planar dimension, wherein the calculated pixel coordinate in the first planar dimension accounts for at least a portion of the general geometric distortion of the input image in the first planar dimension; and perform interpolation at the calculated pixel coordinate in the first planar dimension in the input image to generate a pixel value for the current pixel in the intermediate buffer; and render each one-dimensional element in a second planar dimension of the intermediate buffer to generate pixel values in a corresponding one-dimensional element in the second planar dimension of the output image, wherein, to perform said rendering, the program instructions are executable by the at least one processor to, for each pixel in each element in the second planar dimension of the output image; calculate a pixel coordinate in the second planar dimension, wherein the calculated pixel coordinate in the second planar dimension accounts for at least a portion of the general geometric distortion of the input image in the second planar dimension; and perform interpolation at the distorted pixel coordinate in the second planar dimension in the intermediate image to generate a pixel value for the current pixel in the output image; wherein at least a portion of the general geometric distortion present in the input image is not present in the output image. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A non-transitory computer-readable storage medium storing program instructions, wherein the program instructions are computer-executable to implement:
-
rendering an output image from an input image, wherein the input image has general geometric distortion, wherein the general geometric distortion includes at least one radial distortion component and at least one tangential distortion component, and wherein, in said rendering an output image, the program instructions are computer-executable to implement; rendering each one-dimensional element in a first planar dimension of the input image to generate pixel values in a corresponding one-dimensional element in the first planar dimension of an intermediate buffer, wherein in said rendering the program instructions are computer-executable to implement, for each pixel in each element in the first planar dimension of the intermediate buffer; calculating a pixel coordinate in the first planar dimension, wherein the calculated pixel coordinate in the first planar dimension accounts for at least a portion of the general geometric distortion of the input image in the first planar dimension; and performing interpolation at the calculated pixel coordinate in the first planar dimension in the input image to generate a pixel value for the current pixel in the intermediate buffer; and rendering each one-dimensional element in a second planar dimension of the intermediate buffer to generate pixel values in a corresponding one-dimensional element in the second planar dimension of the output image, wherein in said rendering the program instructions are computer-executable to implement, for each pixel in each element in the second planar dimension of the output image; calculating a pixel coordinate in the second planar dimension, wherein the calculated pixel coordinate in the second planar dimension accounts for at least a portion of the general geometric distortion of the input image in the second planar dimension; and performing interpolation at the distorted pixel coordinate in the second planar dimension in the intermediate image to generate a pixel value for the current pixel in the output image; wherein at least a portion of the general geometric distortion present in the input image is not present in the output image. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A computer-implemented method, comprising:
-
executing instructions on a specific apparatus so that binary digital electronic signals representing an output image are rendered from binary digital electronic signals representing an input image, wherein the input image has general geometric distortion, wherein the general geometric distortion includes at least one radial distortion component and at least one tangential distortion component, and wherein said rendering the output image from the input image comprises; rendering each one-dimensional element in a first planar dimension of the input image to generate pixel values in a corresponding one-dimensional element in the first planar dimension of binary digital electronic signals representing an intermediate buffer, wherein said rendering comprises, for each pixel in each element in the first planar dimension of the intermediate buffer; calculating a pixel coordinate in the first planar dimension, wherein the calculated pixel coordinate in the first planar dimension accounts for at least a portion of the general geometric distortion of the input image in the first planar dimension; and performing interpolation at the calculated pixel coordinate in the first planar dimension in the input image to generate a pixel value for the current pixel in the intermediate buffer; and rendering each one-dimensional element in a second planar dimension of the intermediate buffer to generate pixel values in a corresponding one-dimensional element in the second planar dimension of the output image, wherein said rendering comprises, for each pixel in each element in the second planar dimension of the output image; calculating a pixel coordinate in the second planar dimension, wherein the calculated pixel coordinate in the second planar dimension accounts for at least a portion of the general geometric distortion of the input image in the second planar dimension; and performing interpolation at the distorted pixel coordinate in the second planar dimension in the intermediate image to generate a pixel value for the current pixel in the output image; and storing the output image in a memory location of said specific apparatus for later use, wherein at least a portion of the general geometric distortion present in the input image is not present in the output image.
-
Specification