HK1108050A - Perspective transformation of two-dimensional images - Google Patents
Perspective transformation of two-dimensional images Download PDFInfo
- Publication number
- HK1108050A HK1108050A HK08101723.4A HK08101723A HK1108050A HK 1108050 A HK1108050 A HK 1108050A HK 08101723 A HK08101723 A HK 08101723A HK 1108050 A HK1108050 A HK 1108050A
- Authority
- HK
- Hong Kong
- Prior art keywords
- image
- interest
- machine
- perspective transformation
- embedded device
- Prior art date
Links
Abstract
One aspect of the disclosure is directed to an embedded device. The embedded device comprises an image of interest selecting mechanism and a transformation mechanism. The transformation mechanism applies perspective transformation functions to the image of interest such that the image of interest varies from a greater width at a foreground viewpoint of the image of interest to a lesser width toward a vanishing point of the image of interest and such that the image of interest varies from a greater amount of expansion and lesser amount of compression at the foreground viewpoint of the image of interest to a lesser amount of expansion and a greater amount of compression towards the vanishing point of the image of interest.
Description
Cross reference to related applications
This patent application claims priority based on united states provisional application No. 60/614,216 entitled "Perspective Transformation for Two-Dimensional Images" filed on 28.9.2004 and assigned to the assignee of the present invention, which is expressly incorporated herein by reference.
Technical Field
Certain aspects of the present invention relate to digital image manipulation. Other aspects relate to a mobile telephone having image processing functionality.
Background
Digital image manipulation describes many different types of modifications and transformations that may be performed on a digital image. Examples of image manipulation operations include perspective transformation, rotation, magnification, squeezing, warping, edge detection, and filtering.
Artists use perspective reduction techniques to simulate 3-dimensional depth and distance of physical objects on a two-dimensional surface. For example, by drawing or rendering closer objects as larger and farther objects as smaller, and by carefully rendering the lines and corners of the objects, an artist can create a 3-dimensional illusion in 2-dimensional space. In mathematical terms, the perspective view is the projection of a 3-dimensional space onto a 2-dimensional plane.
Disclosure of Invention
One aspect of the present disclosure relates to embedded devices. The embedded device includes an image of interest selection mechanism and a transformation mechanism. The transformation mechanism applies a perspective transformation function to an image of interest, thereby causing the image of interest to vary from a greater width at a foreground viewpoint of the image of interest to a lesser width toward a vanishing point of the image of interest, and causing the image of interest to vary from a greater degree of expansion and a lesser degree of compression at the foreground viewpoint of the image of interest to a lesser degree of expansion and a greater degree of compression toward the vanishing point of the image of interest.
Drawings
Embodiments will be described with reference to the following drawings, wherein like numerals represent like items throughout, and wherein:
FIG. 1 is a block diagram of an exemplary embedded device capable of performing transformations on images;
FIG. 2 is a schematic illustration of an image showing features of a mapping function for perspective transformation of the image;
fig. 3(a) is an original size 520 x 390 pixel image before being transformed using the illustrated method. FIG. 3(b) shows the transformation of the image of FIG. 3(a) by a method according to the illustrated embodiment using various different transformation parameters;
FIG. 4 is a block diagram of an exemplary embedded device having an integer microprocessor capable of performing transformations on images;
FIG. 5 is a block diagram of an exemplary embedded device having a floating point microprocessor capable of performing transformations on images;
FIG. 6 is a schematic flow chart diagram illustrating the tasks involved in an implementation of the transformation method;
FIG. 7 is an illustration of a mobile phone with a digital camera illustrating the use of the transformation method on a portable device;
FIG. 8 illustrates transforming the image in FIG. 3(a) with various parameters to produce different perspective views of the image in four different orientations with vanishing points near the camera by a method according to the illustrated embodiment;
FIG. 9 illustrates transforming the image in FIG. 3(a) with various parameters to produce different perspective views of the image with vanishing points away from the camera by a method in accordance with the illustrated embodiment; and is
FIG. 10 illustrates transforming the image in FIG. 3(a) with various parameters to produce different perspective views of the image with a vanishing point located off-center and near the camera by a method according to the illustrated embodiment.
Detailed Description
FIG. 1 is a block diagram of an example embedded device 10, in the illustrated embodiment, the embedded device 10 comprises a wireless mobile communication device. The illustrated embedded device 10 includes: a system bus 14, a device memory 16 (which is main memory in the illustrated device 10) connected to and accessible by other portions of the embedded device 10 through the system bus 14, and a hardware entity 18 connected to the system bus 14. At least some of the hardware entities 18 perform operations relating to access to and use of the main memory 16. Hardware entity 18 may include a microprocessor, an ASIC, and other hardware.
A graphics entity 20 is connected to the system bus 14. The graphics entity 20 may comprise a core or a portion of a larger integrated system (e.g., a system on a chip (SoC)), or it may comprise a graphics chip such as a graphics accelerator. In the illustrated embodiment, graphics entity 20 includes a graphics pipeline (not shown), a graphics clock 23, a buffer 22, and a bus interface 19 for interfacing graphics entity 20 with system bus 14.
Buffer 22 holds data used by graphics entity 20 in pixel-by-pixel processing. The buffer 22 provides local storage of pixel-related data, such as pixel information, from a buffer (not shown) within the main memory 16.
In the illustrated embodiment, the graphics entity 20 is capable of performing a perspective transformation of an image. To this end, the graphic entity 20 further comprises: an image of interest selection mechanism 24 to display and allow a user to select an image to be transformed; and transformation means 26 to perform image transformations. As shown, the image of interest selection mechanism 24 is coupled to a user interface 28 of the embedded device 10. The image transformation that may be performed by the embedded appliance 10 will be described in more detail below. The image operated on by the embedded device 10 may be stored on the main memory 16 of the embedded device 10, the buffer 22 of the embedded device, or a machine-readable medium interoperable with the embedded device. Additionally, although the graphics entity 20 performs the transformation functions in the illustrated embodiment, in other embodiments, these functions may be performed by other hardware 18.
Fig. 2 is a schematic illustration of an image 50. The image 50 is transformed by the illustrated transformation mechanism. The transformation mechanism applies a perspective transformation function to the image 50. The resulting single point perspective image is shown generally at 56. The single point perspective image 56 changes from a larger width at the foreground viewpoint of the image 50 to a smaller width toward the vanishing point 58 of the image 50. The term "vanishing point" as used herein refers to the point at which all parallel lines of the single-point perspective image 56 converge.
As shown in fig. 2, the image 50 has a width W and a height H. The width W and height H are expressed in pixels, although other units of measure may be used. In FIG. 2, the height H of the image 50 extends along a y-axis 52 and the width W of the image extends along an x-axis 54. In FIG. 2, the width coordinate of image 50 extends from 0 to W-1 and the height coordinate extends from 0 to H-1, as shown.
As shown in fig. 2, the single point perspective image 56 has a top width D, a height H, and a bottom width W. The bottom width W, height H, and top width D are expressed in pixels, although other units of measure may be used.
The image 50 may be initially formed in a variety of ways, including digital photography, film photography followed by digitization, digitization from a non-photographic source, and purely digital illustration/rendering. Particular embodiments of the image transformation methods provided herein on specific image types and specific platforms or computing systems will be described in more detail below.
Most image transformations can be described as a set of mathematical transformation functions represented by a set of mathematical equations; these equations describe the operations performed on the image, regardless of the particular platform on which the transformation is implemented. The mathematical equations describing one example set of perspective transformation functions in the illustrated embodiment are given below in the form of equations (1) and (2). For each pixel in the image 50:
wherein:
Δx=xend-xstart, (5)
in equations (1) to (6), (x)in,yin) To input the pixel location, (x)out,yout) Is the output pixel position, and xshiftThe x-coordinate of the left end point of the top width of the single point perspective image 56. W is the width of image 50, which is also the bottom width of image 56. H is the height of both image 50 and image 56. D is the length of the smaller of the two parallel sides within image 56. Since the vanishing point is above the image, the smaller parallel edge is the top edge in this case. When the vanishing point is at the originOn the left, right, or bottom side of the image 50, the resulting fluoroscopic image 56 will taper towards the left, right, or bottom side. In this case, the smaller parallel edge would be on the left, right, or bottom side of the image.
In equation (6), the constants a, b, c, and d are empirically determined and can be used for any image of arbitrary size. These constants determine the degree and smoothness of the perspective zoom-out effect in the single-point perspective image 56. For example, one possible set of values for (a, b, c, d) is (0.00402, -1.87736, 0.50697, 0.87585).
Equations (2) and (6) determine the degree of expansion and compression in the fluoroscopic image. The factor k in equation (2) controls the variation and degree of expansion and compression in the fluoroscopic image. As shown in equation (6), the factor k depends on the distance between the camera (i.e., the viewpoint) and the vanishing point 58. Thus, the factor k varies as a function of the height H, top width D, and bottom width W of the single point fluoroscopic image 56. In application, the image of interest will vary from a greater degree of expansion and a lesser degree of compression at the foreground viewpoint of the image of interest towards a vanishing point of the image of interest to a lesser degree of expansion and a greater degree of compression.
The width ratio (D/W) varies between 0 and 1 and depends on the location of the vanishing point. A small ratio indicates that the vanishing point is close to the camera. A large ratio indicates that the vanishing point is far from the camera. For example, a width ratio equal to 1 indicates that the vanishing point is located at infinity.
The y-coordinate value represents the distance between the camera and the point in the image. A small y-coordinate indicates that the point is close to the camera. Alternatively, a large y-coordinate indicates that the point is far from the camera.
In application, a perspective transformation of a 520 x 390 pixel image with vanishing points at infinity using equations (1) to (6) would result in the image shown in fig. 3(a), which is equivalent to the original image. In addition, equations (1) to (6) are used to calculate k ═ 1, W ═ 520 pixels, H ═ 390 pixels, D ═ 260 pixels, and xshiftIn the case of 130 pixels, a sum of 520 pixels is usedThe perspective transformation of the 390 pixel image results in the image shown in fig. 3(b) with the bottom side of the image close to the camera and the top side of the image far from the camera.
As a specific example of the use of the above equation, taking the image in fig. 3(b) as an example, when k is 1, D is 260 pixels, and x isshiftFor 130 pixels, equation (2) is simplified to the following equation:
as shown in fig. 3(b), the closer the region of the original image is to the camera, the more the region becomes expanded in the perspective image. To obtain this perspective reduction effect, a 1-to-2 mapping of the y-coordinate values needs to be performed. For example, when yinWhen 1 and the result is truncated to an integer, equation (7) yields:
similarly, for yin=2,
As the results show, at yin1 and yinY in case of 2outThere is a gap between the values. In practice, this gap means that at youtNo output pixel is generated at 2 and therefore no output pixel exists at that location in the original output image. However, empty pixel locations in the original output image may be filled in by pixel interpolation or replication using existing pixels to form a pixel having the desired yinThe final output image of the pixel value 1-to-2 mapping.
As shown in fig. 3(b), the farther a region of the original image is from the camera, the more the region becomes compressed in the perspective image. To obtain this perspective reduction effect, a 2-to-1 mapping between input and output pixels is required. For example, when yinWhen H-3 is 387 and the result is truncated to an integer, equation (7) yields:
similarly, for yin=H-2=388,
As shown in the results, at each youtThere is no difference between the values, thereby achieving the desired 2-to-1 mapping.
In other embodiments where different degrees of perspective reduction are desired, the constants a, b, c, and d in equation (6) may be adjusted to yield different values of k that will produce the desired perspective effect.
A transformation method may be constructed to run on a computing system with limited capabilities, such as an integer microprocessor. Although some integer microprocessors include floating point (i.e., decimal) mathematical emulators, the use of an emulator may be more time consuming and computationally expensive. The transformation may be implemented using integer arithmetic.
When implementing transformation equations such as equations (1) through (6) on an integer microprocessor, two considerations arise: power functions in these equations are computed using integer-only arithmetic, and the order of operations to avoid integer overflow (i.e., the case where the computed number exceeds the largest integer that can be handled by the microprocessor).
FIG. 4 is a block diagram of an exemplary embedded device 60 for performing the above-described transformations using integer arithmetic. The embedded device 60 includes a main memory 16 connected to the system bus 14, a graphics entity 66 connected to the system bus 14 by an interface 19, and an integer microprocessor 61 connected to the system bus 14. The embedded device 60 also includes a transformation operations coordinator 62 connected to the microprocessor. The integer operation coordinator 64 is included in the transform operation coordinator 62.
The transformation operation coordinator 62 calculates the power function in equation (6) in a manner compatible with the microprocessor 61 and performs other transformation operations. The integer arithmetic coordinator 64 ensures that all necessary computations in equations (1) through (6) are performed within the integer microprocessor 61 using integer arithmetic in a computation order that avoids integer overflow. (the functions of both components 62, 64 and the calculations performed will be described in more detail below). One advantage of embedded devices such as device 60 is that no floating point emulator is used, which makes the conversion on the integer microprocessor 61 more efficient. The transformation operations coordinator 62 and the integer operations coordinator 64 may be implemented in hardware, software, some combination of hardware and software, or any other manner compatible with the microprocessor 61.
In the illustrated embodiment, to calculate the power function in equation (6), a Taylor series expansion of the function is used. For an arbitrary power function, the taylor series expansion is given by equation (8):
as in any taylor series, the more terms that are added, the more accurate the approximation becomes. However, the more taylor series terms that are used, the higher the computational cost of the process becomes. In addition, subsequent terms of the taylor series add a smaller and smaller amount of precision to the final result. Thus, the number of taylor series terms used to calculate the power function will depend on the required accuracy and the computing power available. In one embodiment, which will be described in more detail below, it is found that the first four terms of the taylor series provide sufficient accuracy and do not require excessive computational power. Using the first four terms of the series, in the case where a is 2, equation (8) reduces to equation (9):
although equation (9) does not strictly contain integer terms, non-integer terms may be converted to integers in order to facilitate performing the calculations. For example, the natural logarithm of 2 may be multiplied by 210(i.e., shifted 10 bits to the left) and rounded to the nearest integer, thus yielding 710. Intermediate arithmetic operations may be computed using such integer expressions of the natural logarithm of 2. After all intermediate arithmetic operations have been calculated, they can be divided by 210(i.e., shifted 10 bits to the right) to achieve the final result. Typically, a large integer factor is used in order to use multiple significant bits and to maintain as high a precision as possible. However, if less precision is required, a smaller integer factor may be used. In addition, although arbitrarily large integer factors may be used in converting floating point numbers to integers, powers of 2 are used in the illustrated embodiment so that relatively slow multiplication operations may be replaced with relatively fast displacement operations.
Four-term Taylor series approximation form using equation (9) and integer conversion multiplier 216An example of implementation code for a 32-bit integer microprocessor that performs a perspective operation is as follows:
int32yin,yout,c1,c2,c3,a,k,k2;
a=h-1;
k3=((1054*(d<<8))/w+58777298)-
(((1922*(d<<8)/w)<<8)/w*d);
k=(k2+(int32)(1038*((a<<16)/((yin<<1)+a))))>>16;
c1=((k*(a-yin))>>1)/a;
c2=(((c1*(a-yin))*k)/a)>>10;
c3=((((c2*7*(a-yin))>>6)*k)/a)>>4;
yout=(yin*(65536+89*c1+31*c2+c3))>>16;
of the above code fragments, 65536 is 1 × 216And the operations are ordered to avoid integer overflow on a 32-bit microprocessor. The values of the taylor series are stored in intermediate variables c1, c2, and c 3. The final shift operation eliminates the multiplier 216The influence of (c).
It has been found that the code fragments described above provide real-time results on a 32-bit integer microprocessor. Although the embodiment described is coded with C and implemented on a 32-bit microprocessor, other embodiments may be coded with any programming language including C, C + +, Java, and assembler may be implemented on microprocessors having any capability, including 64-bit microprocessors and 128-bit microprocessors. This implementation does not require the use of integer-only arithmetic and does not require sorting to avoid overflow. If these methods are implemented on an integer microprocessor, they may be provided as image processing functions on a mobile phone or other portable electronic device having a digital camera. It should also be understood that these methods may be implemented in software, hardware, or any combination of software and hardware on a microprocessor, ASIC, or any other platform having sufficient computing power to implement these methods.
FIG. 5 is a block diagram of an exemplary embedded device 70, the embedded device 70 using floating point arithmetic to perform the above-described transformations. The components of embedded device 70 are generally similar to the components of embedded device 60, and thus the above description will still apply to the same elements. Unlike embedded device 60, embedded device 70 includes a floating point microprocessor 72. The embedded device 70 also includes a transformation coordinator 74 coupled to the floating-point microprocessor 72, but the transformation coordinator 74 does not have an integer coordinator. Calculations are performed in embedded device 70 using floating point numbers, thereby eliminating the task of, for example, converting the terms of equations (1) through (6) to integers. Although the integer-only implementation of the illustrated transformation method would work correctly if executed on embedded device 70, the floating point capability of microprocessor 72 is preferably used.
FIG. 6 is a more general flow diagram illustrating a method 100 for applying a perspective transformation to an image. The method 100 may be implemented on any platform capable of performing the necessary computations.
Method 100 begins at act 102, and control passes to act 104. In act 104, the user selects an input image of interest. After the image of interest is selected, the method 100 continues to act 106 where a pixel of the input image is selected in act 106. After act 106, method 100 continues with act 108. In act 108, the pixels are transformed by performing the above operations and resulting output pixels of the output image are generated. The control then passes to act 109 where a decision is made as to whether there are other pixels remaining in the input image. If there are other pixels remaining in the image (109: YES), control of method 100 returns to 106. If NO other pixels remain in the image (109: NO), control passes to 110. In act 110, any interpolation or copying of missing pixels in the output image may be performed, which is necessary to create a complete perspective image. (in the simplest case, any necessary pixel replication may be performed by nearest neighbor replication.) any other tasks required to form a complete, viewable image may also be performed at act 110, including writing header information for the output image file. Once act 110 is complete, method 100 ends and returns at act 112.
In some of the above descriptions, it has been assumed that the image to be transformed is in RGB (red-green-blue) format, in which each image pixel has a value for the red content, a value for the green content, and a value for the blue content of the pixel. However, the illustrated transformation method can be used directly on other image formats without first converting to RGB. This is advantageous because although RGB-format images are relatively easy to transform, they are more difficult to compress and generally consume more storage space.
Two other common image formats are YCbCr and YCrCb. While data is stored in the form of red, green, and blue values for each pixel in an RGB image, YCbCr and YCrCb formats store image data by recording luminance (Y) and chrominance (Cb, Cr) values for each pixel. The YCbCr and YCrCb formats are popular because they are used in the common JPEG picture file format.
The ability to operate on RGB, YCbCr, and YCrCb images would be advantageous if the image transformation were implemented on a portable device such as a digital camera, since all three formats would be used in a digital camera. This is due to the way the digital image is created and processed.
For example, most digital camera image sensors are constructed of individual sensor cells that are sensitive to only one of red, green, or blue light, rather than to light of all three colors. Thus, the individual cells are typically arranged in a pattern known as a Bayer (Bayer) pattern in which green-sensitive cells are interspersed between and interleaved with red-and blue-sensitive cells. In consumer products, green cells are often dominant because the human visual system is more sensitive to green, and the inclusion of more green cells tends to improve perceived image quality. In a typical bayer pattern, an array of 16 cells may include 8 green cells, 4 red cells, and 4 blue cells arranged generally in a checkerboard pattern. If the image is taken by a digital device using monochrome cells in the form of a bayer pattern, the original image is typically interpolated so that each pixel has a red value, a green value, and a blue value, and is stored as an RGB image at least in an intermediate processing stage. The image may be further converted to YCbCr or YCrCb for compression and storage.
Although images in the YCbCr and YCrCb formats may be processed directly by applying the above transformations, in some cases additional tasks may be performed on, for example, subsampled YCbCr and YCrCb images. In a subsampled image, some chrominance values are discarded or subsampled to reduce the size of the file. For example, in the common H2V1 YCbCr 4:2:2 format, each pixel column is subsampled, but the pixel rows are unaffected. In this subsampling scheme, if the columns are numbered starting from zero, only even columns have Cb components and only odd columns have Cr components. Another subsampling format is the YCbCr 4:2:0 format, where each 2 x 2 pixel array shares a single Cb value and a single Cr value. The YcrCb format is generally the same as YCbCr, except that the order of the Cb and Cr components is reversed.
The above transformation method can be applied directly to subsampled YCbCr and YCrCb formats, although doing so may not result in a final image with correctly interleaved Cb and Cr components. To overcome this problem, a temporary non-subsampled image (YCbCr 4:4:4 or YCrCb 4:4:4) may be formed from the subsampled image by: pairs of adjacent pixels are considered and appropriate Cb and Cr values are copied so that each pixel has a Cb value and a Cr value. The excess Cb and Cr values may be discarded after transformation for storage purposes. Tests performed by the inventors have shown that there is no visually perceptible difference between the processing results of an RGB image and the processing results of the same image in YCbCr and YCrCb formats.
Fig. 7 shows an embodiment of a mobile phone 200 with a digital camera 202. The mobile phone 200 and its digital camera 202 include the image of interest selection mechanism 24 and transformation device 26 shown in fig. 1, or other mechanisms for performing the image transformations described herein. In use, a user takes a digital picture using the digital camera 202 of the mobile phone 200 and then performs the transformation using the processing capabilities of the mobile phone 200. As shown in fig. 7, the digital image 204 is displayed on the display screen 206 of the mobile phone 200. Display screen 206 may be a relatively small liquid crystal display driven by graphics entity 20; other types of display screens 206 may also be used. As shown, image 204 is perspective transformed into a single point perspective. An overlay or drop down menu 214 temporarily overlaid on the image 204 may provide instructions for altering the magnitude and orientation of the perspective transformation. The user may be instructed to alter the perspective zoom-out effect on image 204 using some combination of number/letter keys 212. The user may or may not be able to directly modify the values of the parameters of the transformation function described above, depending on the implementation; for example, the user may only modify a set value such as "perspective factor," the value of which maps to a particular parameter value.
Depending on the implementation, the parameters of the transformation may be hard coded or pre-set into the device such that the result of the transformation always causes, for example, a perspective transformation to have the same predetermined mapping values.
The following description provides results of several examples, thereby illustrating a real-time application of perspective transformation to stored images according to the above-described embodiments. Each of the illustrated cases provides a perspective view of an image transformed using a different combination of width ratio, starting coordinate, and orientation.
Fig. 8 illustrates the application of the perspective transformation method to a 520 x 390 image using four different combinations of width ratio, starting coordinate, and orientation. Fig. 8(a) illustrates an upwardly oriented perspective view of a processed 520 x 390 image with a vanishing point near the viewpoint. When D is 130, W is 520, D/W is 0.25, H is 390, xshiftEquations (1) to (6) are applied to the image with 195 and (a, b, c, d) — 0.00402, -1.87736, 0.50697, 0.87585), where all measurements are expressed in pixels.
Fig. 8(b) illustrates a perspective view of a processed 520 x 390 image oriented downward, with vanishing points near the viewpoint. When D is 130, W is 520, D/W is 0.25, H is 390, xshiftApplying equations (1) to (6) to the image with (a, b, c, d) 195 and (0.00402, -1.87736, 0.50697, 0.87585),where all measurements are expressed in pixels.
Fig. 8(c) illustrates a perspective view of the processed 520 x 390 image oriented to the left with a vanishing point near the viewpoint. When D is 130, W is 390, D/W is 0.333, H is 520, xshiftEquations (1) to (6) are applied to the image with 130 and (a, b, c, d) — 0.00402, -1.87736, 0.50697, 0.87585), where all measurements are expressed in pixels.
Fig. 8(d) illustrates a perspective view of the processed 520 x 390 image oriented to the right with a vanishing point near the viewpoint. When D is 130, W is 390, D/W is 0.333, H is 520, xshiftEquations (1) to (6) are applied to the image with 130 and (a, b, c, d) — 0.00402, -1.87736, 0.50697, 0.87585), where all measurements are expressed in pixels.
Fig. 9 illustrates the application of the perspective transformation method to a 520 x 390 image using two different combinations of width ratio, starting coordinate, and orientation. Fig. 9(a) illustrates an upwardly oriented perspective view of a processed 520 x 390 image with vanishing points away from the viewpoint. When D is 450, W is 520, D/W is 0.865, H is 390, xshiftEquations (1) to (6) are applied to the image with 35 and (a, b, c, d) — 0.00402, -1.87736, 0.50697, 0.87585, where all measurements are expressed in pixels.
Fig. 9(b) illustrates an upwardly oriented perspective view of the processed 520 x 390 image with vanishing points away from the viewpoint. When D is 338, W is 390, D/W is 0.867, H is 520, xshiftEquations (1) to (6) are applied to the image with (a, b, c, d) ═ 0.00402, -1.87736, 0.50697, 0.87585, where all measurements are expressed in pixels.
Fig. 10 illustrates the application of the perspective transformation method to a 520 x 390 image using two different combinations of width ratio, starting coordinate, and orientation.Fig. 10(a) illustrates an upwardly oriented perspective view of a processed 520 x 390 image with a vanishing point off-center and near the viewpoint. When D is 65, W is 520, D/W is 0.125, H is 390, xshiftEquations (1) to (6) are applied to the image with 0 and (a, b, c, d) — 0.00402, -1.87736, 0.50697, 0.87585, where all measurements are expressed in pixels.
Fig. 10(b) illustrates a perspective view of the processed 520 x 390 image oriented to the left with the vanishing point off-center and near the viewpoint. When D is 65, W is 390, D/W is 0.167, H is 520, xshiftEquations (1) to (6) are applied to the image with 0 and (a, b, c, d) — 0.00402, -1.87736, 0.50697, 0.87585, where all measurements are expressed in pixels.
While certain embodiments have been illustrated and described, the words used herein are words of description rather than limitation. Modifications may be made, for example, within the scope of the appended claims.
Claims (31)
1. An embedded device, comprising:
an image of interest selection mechanism; and
a transformation mechanism for applying a perspective transformation function to the image of interest to vary the image of interest from a larger width at a foreground viewpoint of the image of interest towards a vanishing point of the image of interest to a smaller width and to vary the image of interest from a larger degree of expansion and a smaller degree of compression at a foreground viewpoint of the image of interest towards a vanishing point of the image of interest to a smaller degree of expansion and a larger degree of compression.
2. The embedded device of claim 1, further comprising a user interface to control the image of interest selection mechanism.
3. The embedded device of claim 1, further comprising a graphics entity, wherein the image of interest selection mechanism and the transformation mechanism are coupled to the graphics entity.
4. The embedded device of claim 3, further comprising:
a system bus;
a main memory; and
a display screen coupled to the graphical entity;
wherein the main memory and the graphics entity are coupled to the system bus.
5. The embedded device of claim 1, wherein the embedded device is a mobile phone.
6. The embedded device of claim 5, wherein the mobile phone comprises a digital camera.
7. The embedded device of claim 1, wherein the perspective transformation mechanism includes an integer operations coordinator and an integer processor to perform the perspective transformation using unique integer arithmetic.
8. The embedded device of claim 2, wherein the user interface includes an option for allowing a user to select parameters for the perspective transformation.
9. The embedded device of claim 1, wherein the perspective transformation produces two of lengths D and WParallel-sided output image, where D is the length of the smaller side starting at x-coordinate xslartAnd wherein the transformation mechanism performs the following equations (1) and (2):
where k is a constant indicating the degree of expansion and compression and the degree of smoothness in the fluoroscopic image, W is the width of the image of interest in pixels, H is the height of the image of interest in pixels, xinAnd yinIs the input pixel coordinate of the image of interest in pixel, and xoutAnd youtIs the output pixel coordinate in pixels.
10. The embedded device of claim 7, wherein the integer operations coordinator includes a computation ordering mechanism to order transform computations to avoid overflow.
11. The embedded device of claim 1, wherein the transformation mechanism performs perspective transformation in real-time.
12. The embedded device of claim 4, wherein the graphical entity includes a display mechanism to display a transformed image of interest on the display screen.
13. A machine-readable medium encoded with data, the encoded data interoperable with a machine to cause:
selecting an image of interest; and
applying a perspective transformation to the image of interest to vary the image of interest from a greater width at a foreground viewpoint of the image of interest toward a vanishing point of the image of interest to a lesser width, and to vary the image of interest from a greater degree of expansion and a lesser degree of compression at the foreground viewpoint of the image of interest toward a vanishing point of the image of interest to a lesser degree of expansion and a greater degree of compression.
14. The embedded device of claim 13, wherein the encoded data is interoperable with a machine such that the application is executed using unique integer arithmetic.
15. The machine-readable medium of claim 14, wherein the encoded data is interoperable with a machine to allow a user to select parameters for the perspective transformation.
16. The machine-readable medium of claim 13, wherein the encoded data is interoperable with a machine to cause the transformed image of interest to be a trapezoidal shape.
17. The machine-readable medium of claim 13, wherein the encoded data is interoperable with a machine such that the encoded data is interactive with the machineThe perspective transformation produces an output image having two parallel edges of lengths D and W, where D is the length of the smaller edge starting at the x-coordinate xslartAnd wherein the encoded data causes the perspective transformation to be performed according to equations (1) and (2) below:
where k is a constant indicating the degree of expansion and compression and the degree of smoothness in the fluoroscopic image, W is the width of the image of interest in pixels, H is the height of the image of interest in pixels, xinAnd yinIs the input pixel coordinate of the image of interest in pixel, and xoutAnd youtIs the output pixel coordinate in pixels.
18. The machine-readable medium of claim 13, wherein the encoded data is interoperable with a machine to cause the transformation mechanism to perform computations in a predetermined order of computation in order to avoid overflow.
19. The machine-readable medium of claim 13, wherein the encoded data is interoperable with a machine such that the perspective transformation is performed in real-time.
20. The machine-readable medium of claim 13, wherein the encoded data is interoperable with a machine to cause the perspective transformation to be performed in an embedded device.
21. The machine-readable medium of claim 13, wherein the encoded data is interoperable with a machine to cause the perspective transformation to be performed in a mobile phone.
22. The machine-readable medium of claim 21, wherein the mobile phone comprises a digital camera.
23. The machine-readable medium of claim 22, wherein the encoded data is interoperable with a machine to cause the perspective transformation to be performed using an integer microprocessor.
24. A mobile phone, comprising:
a receiver/transmitter assembly;
a microprocessor;
an image of interest selection mechanism coupled to the microprocessor; and
a transformation mechanism coupled to the microprocessor to apply a perspective transformation function to the image of interest to cause the image of interest to vary from a greater width at a foreground viewpoint of the image of interest toward a vanishing point of the image of interest to a lesser width and to cause the image of interest to vary from a greater degree of expansion and a lesser degree of compression at the foreground viewpoint of the image of interest toward a vanishing point of the image of interest to a lesser degree of expansion and a greater degree of compression.
25. The mobile phone of claim 24, wherein the microprocessor is an integer microprocessor.
26. The mobile phone of claim 24, wherein the transformation mechanism applies the perspective transformation using unique integer arithmetic.
27. An apparatus, comprising:
means for selecting an image of interest; and
means for applying a perspective transformation that applies a perspective transformation to the image of interest such that the image of interest varies from a larger width at a foreground viewpoint of the image of interest to a smaller width toward a vanishing point of the image of interest.
28. The apparatus of claim 27, wherein the applying means comprises means for performing the perspective transformation using unique integer arithmetic.
29. The apparatus of claim 27, further comprising means for allowing a user to select the image of interest.
30. The apparatus of claim 28, wherein the transformed image of interest is a trapezoidal shape.
31. The apparatus of claim 27, wherein the perspective transformation produces an output image having two parallel edges of lengths D and W, where D is the length of the smaller edge starting at x-coordinate xslartAnd wherein the perspective transformation is represented by equations (1) and (2) below:
where k is a constant indicating the degree of expansion and compression and the degree of smoothness in the fluoroscopic image, W is the width of the image of interest in pixels, H is the height of the image of interest in pixels, xinAnd yinIs the input pixel coordinate of the image of interest in pixel, and xoutAnd youtIs the output pixel coordinate in pixels.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US60/614,216 | 2004-09-28 | ||
| US11/102,211 | 2005-04-07 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| HK1108050A true HK1108050A (en) | 2008-04-25 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4295340B2 (en) | Enlarge and pinch 2D images | |
| JP5080678B2 (en) | Perspective transformation of 2D images | |
| TWI518638B (en) | Storage device, method, and system fo high dynamic range image generation and rendering | |
| US8189944B1 (en) | Fast edge-preserving smoothing of images | |
| JP5573316B2 (en) | Image processing method and image processing apparatus | |
| CN101601069B (en) | System and method for reducing artifacts in images | |
| JP2015522987A (en) | Motion information estimation, coding and decoding in multi-dimensional signals by motion region and auxiliary information by auxiliary region | |
| CN1219256A (en) | Method and apparatus for performing color space conversion using blend logic | |
| US20170061677A1 (en) | Disparate scaling based image processing device, method of image processing, and electronic system including the same | |
| US20060077211A1 (en) | Embedded device with image rotation | |
| CN1684497A (en) | Image pantography and image pantograph device system | |
| US8873884B2 (en) | Method and system for resizing an image | |
| HK1108050A (en) | Perspective transformation of two-dimensional images | |
| CN1190063C (en) | Image processing device and method | |
| HK1108053A (en) | Magnification and pinching of two-dimensional images | |
| CN115834854B (en) | Image conversion method, device and storage medium | |
| CN103500434B (en) | Image magnification method and device | |
| WO2021053735A1 (en) | Upscaling device, upscaling method, and upscaling program | |
| CN101061703A (en) | Embedded device with image rotation | |
| Uyttendaele et al. | HD View: A Software Camera for the Web | |
| HK1064761A (en) | Apparatus and method for encoding and computing a discrete cosine transform using a butterfly processor |