Image processing method and apparatus

Abstract: In order to simplify a photographing operation when providing a texture original. image, and to remove a useless operation when extracting a necessary region from the texture original image, the necessary region is assigned in an original image, serving as a base for a texture, using characteristic points of a portion onto which the texture is to be mapped, and a quadrangle having a minimum area is extracted from among quadrangles enclosing the assigned region. An image enclosed by the extracted quadrangle is transformed into a rectangular image having a desired size, and the assigned region is transformed into a region in the rectangular image. The obtained rectangular image and data of the characteristic points for assigning the region are output as texture data. In order to automatically correlate the positions of points assigned in a polygon image with the positions of points assigned in the texture original image including a necessary texture image, respective vertices of the polygons of the displayed polygon image and corresponding points in the displayed texture original image are assigned. Thus, the texture image including the corresponding points is obtained, and position information of the corresponding points in the texture image is provided for the respective vertices assigned in the polygon image.

Description: In a method for drawing a three-dimensional scene in computer graphics, a surface pattern is prepared as texture data, which is mapped onto shape data of a three-dimensional scene. An image obtained by photographing a natural image can be used as the texture data. Conventionally, when using a photographed natural image as texture data in the above-described manner, the texture data is generated according to the following two methods. (1) An image is photographed by being adjusted to the shape and the size of an image to be used as texture data, to obtain a texture original image, and points (vertices or the like) corresponding to the shape of a portion where the image is to be mapped are set in the texture original image. Then, an image is mapped by making the points provided in the texture original image correspond to points in that portion. (2) A desired regtangle is set in a texture original image obtained by photographing an image, and a necessary rectangular region is segmented from the texture original image. The segmented rectangular image is used as the texture original image and is mapped according to the same procedures (setting of vertices and pasting) as in the above-described method (1). However, the above-described conventional methods for generating texture data have the following problems. First, in the method (1), an object to be utilized as a texture must be photographed by being adjusted to the shape and the size of an image to be used as texture data. That is, it is desirable to photograph the image so that the entire object to be utilized as the texture is included and that the image is obtained as large as possible. Hence, a photographing operation cannot be briefly performed. The object to be utilized as the texture must be photographed as large as possible in order to improve reproducibility of details of the texture after image pasting. When, for example, photographing a flat surface as an object to be utilized as a texture, if the surface is photographed from an oblique direction, a part of the pattern or the like of the surface looks as being streched or distorted in the obtained image. In order to reproduce the details of the shrinked portion, high resolution is required, thereby increasing the amount of texture data. Accordingly, it is desirable to photograph the object from the direction which is perpendicular to the surface, thereby causing difficulty in the photographing operation. In the method (2), since the necessary region within the texture original image is not always rectangular, there is the possibility that a large amount of unnecessary region remains. Furthermore, when photographing an object to be utilized as a texture from an oblique direction, the same problem as in the method (1) arises. There is a method in which, when drawing a three-dimensional scene using computer graphics, the shape of a surface is represented using a polygon, and the pattern of the surface is drawn by mapping the texture image onto the polygon. The following method for acquiring a texture image to be used in such computer graphics is generally known. A portion to be used as a texture image is assigned in the form of a rectangle from a texture original image, and the assigned portion is segmented to provide the texture image. Then, corresponding positions of the texture image are input for respective vertices of a polygon to which the texture image is to be mapped. Processing of mapping the texture image onto the polygon is executed based on information relating to the input positions. In the above-described conventional method, however, since the texture image is segmented in the form of a rectangle, a large amount of time is required for providing the polygon, to which the texture image is to be mapped, with the positions of respective vertices when the polygon is not a quadrangle. For example, when pasting a part of a texture image segmented in the form of a rectangle shown in FIG. 9 (b) to a polygon having vertices a - h shown in FIG. 9 (a), the following procedure is necessary. That is, it is necessary to provide the respective vertices a - h (points indicated by black circles) with the normalized coordinate values of corresponding positions a' - h' (positions indicated by black circles) of the texture image within the rectangle. The normalized coordinates are coordinates in which the respective vertices of the rectangle are represented by (0,0), (1,0), (1,1) and (0,1). As described above, in the above-described conventional method, since the user inputs the coordinate values of corresponding positions in the texture image for respective vertices on the polygon image, a very troublesome operation is required. US 5,333,245 discloses a system in which a two- or a three-dimensional image of an object is first input into a computer system. An operator may then define one or more regions of the image for application of surface texture. A two-dimensional image of a surface texture is also input into the computer system. A polygonal area or patch, such as a rectangle, of the surface texture is then defined by the operator. A corresponding patch on the object image, which need not have the same shape or orientation as the patch on the texture image, is also defined by the operator. The object patch is assumed to be a perspective view of the corresponding texture patch, and a three-dimensional mapping function from the texture patch to the object patch is calculated. The spatial position of points on the defined region of the object image that are between the patches are interpolated and smoothed so that a complete three-dimensional mathematical model of a surface corresponding to the defined region is calculated. The process of defining polygonal patches on the texture image and corresponding patches on the object image is repeated until the operator is satisfied that the defined region of the object image is adequately modelled. Conventional texture mapping algorithms are then used to fill the defined region of the object image with texture. The present invention has been made in consideration of the above-described problems. According to the present invention, there is provided a texture-data generation apparatus for generating texture data to be used for computer graphics, comprising assigning means for assigning a region in a texture original image serving as a base for a texture, generation means for generating quadrangles, each enclosing the region assigned by the assigning means, based on a predetermined rule, extraction means for extracting a quadrangle having a minimum area from among the quadrangles generated by the generation means, first transformation means for transforming an image enclosed by the quadrangle extracted by the extraction means into a rectangular image having a desired size, second transformation means for transforming the region assigned by the assigning means into a region in the rectanguler image, and output means for outputting the rectangular image obtained by the first transformation means, and information indicating the region obtained by the second transformation means as texture data. The present invention also provides a texture-data generation method for generating texture data to be used for computer graphics, comprising the steps of assigning a region in a texture original image serving as a base for a texture, generating quadrangles, each enclosing the region assigned in the assigning step, based on a predetermined rule, extracting a quadrangle having a minimum area from among the quadrangles generated in the generating step, transforming an image enclosed by the quadrangle extracted in the extracting step into a rectangular image having a desired size, transforming the region assigned in the assigning step into a region in the rectangular image, and outputting the rectangular image obtained in the first transforming step, and information indicating the region obtained in the second transforming step as texture data. The present invention further provides a computer program product as set out in claim 9. Embodiments of the invention provide a texture-data generation method and apparatus in which a photographing operation when preparing a texture original image is simplified, and in which a useless operation when extracting a necessary region from the texture original image is removed (deletion of unnecessary regions). BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a schematic block diagram illustrating the configuration of a computer according to a first embodiment of the present invention; FIG. 2 is a flowchart illustrating procedures of texture-data generation processing in the first embodiment; FIGS. 3(a) through 3(c) are diagrams illustrating procedures of generation of a convex closure and a quadrangle S in a texture original image; FIG. 4 is a diagram illustrating the correspondence between the quadrangle S and a rectangle R; FIG. 5 is a diagram illustrating the correspondence between a point within the quadrangle S and a point within the rectangle R; FIG. 6 is a diagram illustrating a texture original image and a state of performing region assignment; FIG. 7 is a diagram illustrating texture data obtained from the texture original image shown in FIG. 6; FIGS. 8(a) and 8(b) are diagrams illustrating the configuration of a storage medium storing a control program for realizing the control of the first embodiment;and FIGS. 9 (a) and 9 (b) are diagrams illustrating a typical method of obtaining a texture image. FIG. 1 is a schematic block diagram illustrating the configuration of a computer according to a first embodiment of the present invention. In FIG. 1, a CPU (central processing unit) 101 executes various kinds of processing including the procedures of the first embodiment. A memory 102 includes a ROM (read-only memory) 102a and a RAM (random access memory) 102b. The ROM 102a stores control programs to be executed by the CPU 101 and various kinds of data. The RAM 102b provides operational areas for the CPU 101 to execute various kinds of controls. A storage device 103 comprises, for example, hard disks, floppy disks or the like. The storage device 103 stores various kinds of data, such as texture-original-image data 103a, image data 103b, assigned-point-information data 103c, and the like. Reference numeral 104 represents an input/output interface for inputting/outputting data to be processed from/to the outside of the apparatus. For example, a texture original image obtained by photographing an object is read by a scanner, and the read image can be input via the input/output interface 104. A keyboard 105 is used for selecting data or inputting procedures. A pointing device 106 is used for assigning a point on a display device, and comprises, for example, a mouse. A display device 107 displays the state, the result or the process of processing, and processed data. The display device 107 is controlled by a window system to realize multiwindow display. Next, a description will be provided of processing of generating texture data in the first embodiment which is realized in the computer having the above-described configuration. FIG. 2 is a flowchart illustrating procedures of texture-data generation processing in the first embodiment. In step S201, a texture original image serving as a basse of a texture to be generated is read through the input/output interface 104, and is stored in the storage device 103 as texture-original-image data 103a. The texture original image is an ordinary color or black-and-white image including a texture to be generated. According to the following processing, an image serving as texture data is generated utilizing image data of a partial region of the texture original image. In step S202, a region necessary as texture data is assigned in the texture original image. In this step, for example, a plurality of points in the texture original image corresponding to vertices or control points of patch data (a plane or a curved surface) to which the texture is to be mapped are assigned. After displaying the texture original image stored in the storage device 103 on the display device 107, these points are assigned using the mouse 106. Characteristic points, such as the assigned vertices or control points, are stored in the storage device 103 as the assigned-point-information data 103c. Then, in step S203, a convex closure enclosing the region determined to be necessary for the texture data by the points in the texture original image assigned in step S202 is generated. For example, if the patch is a plane patch (polygon), a convex closure enclosing the assigned points, which are vertices, may be generated. In the case of a curved-surface patch, control points defining a curved surface to which a texture is to be mapped are assigned in the texture original image, and a convex hull enclosing the curved surface defined by the control points is generated. In this case, the control points are not always included within the convex hull. More specifically, the curved-surface patch defined by the control points is depicted on the plane of the texture original image, and a convex hull enclosing this depicted curved-surface patch is generated. Then, in step S204, four edges are selected from among edges constituting the convex hull generated in step S203. Then, in step S205, quadrangles are generated using straight lines including the selected four edges. At that time, generated quadrangles which do not include the entire convex hull are removed, and only quadrangles including the entire convex hull are generated. When the area of a generated quandrangle is minimum of already generated quadrangles, this quadrangle is stored in the RAM 102b as a quadrangle S. In step S207, it is determined if the processing of steps S204 - S206 has been completed for all combinations of four edges of the convex hull, in order to perform the processing for all the combinations. Thus, it is possible to generate a quadrangle S having a minimum area from among quadrangles including the convex hull. FIGS. 3(a) - 3(c) illustrate the concept of the above-described processing. FIGS. 3(a) - 3(c) are diagrams illustrating procedures of generation of a convex hull and a quadrangle S in a texture original image. FIG. 3(a) illustrates vertices or control points assigned in the texture original image. Thus, a region necessary as texture data within the texture original image is set by the vertices or control points. FIG. 3(b) illustrates a state in which the figure of a convex hull is generated based on the points set within the texture original image. As shown in FIG. 3(b), the figure of the convex hull is a polygon obtained by connecting some of the set vertices or control points which includes all of the vertices or control points and which has a maximum area. When the convex hull is obtained as shown in FIG. 3(b), a quadrangle formed by straight lines including four edges of the convex hull and having a minimum area is determined as a quadrangle S (see FIG. 3(c)). Using the quadrangle S generated in the above-described manner, texture data is generated in step S208 and subsequent steps. In step S208, an arbitrary rectangle R is supposed, and a first coordinate transformation system for transforming the rectangle R into the quadrangle S is generated. FIG. 4 illustrates the correspondence between the quadrangle S and the rectangle R. FIG. 5 illustrates the correspondence between a point within the quadrangle S and a point within the rectangle R. In the first coordinate transformation system, in order to make the vertices and the interior of the quadrangle S and the rectangle R correspond to each other as shown in FIG. 4, and, as shown in FIG. 5, to make a point (u, v) within the quadrangle S correspond to a point (s, t) within the rectangle R (0 ≦ s ≦ 1, 0 ≦ t ≦ 1) as shown in FIG. 5, the following coordinate transformation is performed using bilinear interpolation: u = (1-t)·{(1-s)·x1 + s·x2} + t·{(1-s)·x4 + s·x3·s} v = (1-t)·{(1-s)·y1 + s·y2} + t·{(1-s)·y4 + s·y3·s}, where (x1,y1), (x2,y2), (x3,y3) and (x4,y4) are the coordinates of the vertices P1, P2, P3 and P4 of the quadrangle, respectively. As described above, in the first coordinate transformation system, the coordinates (u,v) are obtained by substituting the coordinates (s,t) in the above-described equations. Similarly, in step S209, a second coordinate transformation system for transforming the quadrangle S into the rectangle R, i.e., transformation inverse to the above-described transformation, is generated. If the above-described equations are considered as simultaneous equations with respect to (s,t) and are solved for (s,t), transformation equations for obtaining the values (s,t) from the values (u,v) are obtained. The second coordinate transformation system is necessary because, although, as shown in FIGS. 3(a) and 3(b), the positions of vertices (control points) of the shape are assigned in the image, the positions of the points become uncertain when the quadrangle is transformed into the rectangle. That is, an assigned point corresponding to a vertix is provided as (u, v) in the quadrangle S. If a point corresponding to this assigned point in the rectangle R is not obtained, the correspondence between the original image and the transformed image cannot be obtained. Accordingly, a transformation system for obtaining a point (s,t) in the rectangle R corresponding to a point (u,v) in the quadrangle S is necessary. Then, in step S210, by assuming that the rectangle R is an image having a certain resolution, a region for storing the image data of the rectangle R is secured within the storage device 103. A position P(s,t) of a certain pixel A in the rectangle R is transformed by the first coordinate transformation system, and the corresponding position P'(u,v) in the texture original image is calculated. The position P is not represented by the original values of the position of the pixel of the image of the rectangle R, but is represented by values (s,t) normalized in the vertical and horizontal directions. Then, in step S211, a pixel of the texture original image closest to the obtained position P' in the texture original image is found out, and the values of the pixel are stored in the storage device 103 as the image data of the pixel A. The processing of steps S210 and S211 is performed for all pixels of the image of the rectangle R (step S212). Thus, the image data of the rectangle R is obtained, and is stored in the storage device 103 as the image data 103b. Then, positions in the rectangle R, i.e., positions in the image generated in steps S210 - 212, which correspond to the assigned points used for region assignment for the vertices or control points assigned in step S202 are calculated using the second coordinate transformation system (step S213). The obtained assigned points are also stored in the storage device 103 as the assigned-point-information data 103c. Finally, the image generated in steps up to step S212, and the positions of the assigned points in the image calculated in step S213 are output as the texture data. Thus, both of the image data for the texture, and information relating to the vertices or control points of the portion (a patch or the like) where the texture is to be mapped can be obtained. FIGS. 6 and 7 illustrate an example of application of the first embodiment. FIG. 6 is a diagram illustrating a state in which the region required in step S202 is assigned for the texture original image read in step S201. Portions indicated by x correspond to the vertices of the patch. FIG. 7 illustrates the result of output when performing the processing of steps S203 - S214 for the image shown in FIG. 6. Image data obtained by segmenting only the necessary region and the data of the assigned points are thus provided. FIGS. 6 and 7 represent color variable-density images. FIG. 6 is obtained by photographing an entrance portion of a house. The entire floor enclosed by marks x has a meshy pattern. In FIG. 6, since the floor portion, serving as an object of texture data, is photographed obliquely from above, the pattern looks as stretching toward the upper portion. If such a texture image is segmented using a conventional rectangular region, high resolution is required in order to reproduce a fine pattern in an upper portion, thereby increasing the amount of texture data. If, on the other hand, resolution is restricted, the image is partically degraded. On the other hand, in the first embodiment, the data is transformed in the form of a rectangle as shown in FIG. 7, and a substantially uniform pattern (close to the actual pattern) is reproduced and is used as texture data. Hence, it is unnecessary to have unnecessarily high resolution, and therefore it is possible to reduce the amount of texture data. Furtheremore, since the texture data is generated so as to include the necessary region as large as possible, it is possible to reduce useless data included in the texture data, and therefore to reduce the amount of the texture data. It is preferable to set the aspect ratio of the rectangle shown in FIG. 7 by being adjusted to the three-dimensional shape. For example, in order to restore the shrinked pattern in the upper portion of FIG. 6, it is preferable that the aspect ratio of the rectangle R shown in FIG. 7 coincides with the aspect ratio of the actual floor of the entrance. As described above, according to the first embodiment, when photographing an object to be utilized as a texture, the degree of freedom in the size of the object and in the photographing direction increases, a photographing operation of a texture original image is simplified. Furthermore, since a useless region is effectively removed when extracting a necessary region from a texture original image, the amount of texture data can be reduced. In addition, as shown in FIG. 6, even if an image of an object to be utilized as a texture becomes partially fine influenced by the photographing direction as shown in FIG. 6, texture data can be generated without unnecessarily increasing resolution and degrading the image. The processing functions of the above-described apparatus and method can be achieved by a storage medium storing the program of the first embodiment. That is, the storage medium is mounted in the apparatus, and the program read from the storage medium can achieve the new functions of the method. In this case, in the configuration of FIG. 1, the storage device 103 may, for example, comprise floppy disks, which can supply the program. The program supplied from the floppy disks is loaded in the RAM 102b and is executed by the CPU 101. FIGS. 8(a) and 8(b) illustrate the structural characteristics of the program of the first embodiment. FIG. 8(a) is a diagram illustrating procedures of execution of controls by the program. In reading processing 80, an original image serving as the base for a texture is read via the input/output interface 104, and is stored in the storage device 103 (step S201 shown in FIG. 2). In assigning processing 81, a necessary region is assigned in a texture original image serving as the base for the texture using the vertices or control points of a patch to which the texture is to be mapped (step S202). In generation step 82, rectangles enclosing the region assigned in the assigning processing 81 are generated based on a predetermined rule, and a quadrangle having a minimum area is extracted from among the generated quadrangles (steps S203 - S207). In first transformation processing 83, the image enclosed by the quadrangle extracted in the generation processing 82 is transformed into a rectangular image having a desired size (steps S208 - S212). In second transformation processing 84, the region (comprising characteristics points) assigned in the assigning processing 81 is transformed into a region in the rectangular image (step S213). In output processing 85, the rectangular image obtained in the first transformation processing 83 and information indicating the assigned region obtained in the second transformation processing 84 are output as texture data (step S214). FIG. 8(b) illustrates a memory map indicating a state of storage of program modules for executing the above-described respective sets of prcessing in the storage medium. A reading-processing module 80', an assigning-processing module 81', a generation-processing module 82', a first-transformation-processing module 83', a second-transformation-processing module 84' and an output-processing module 85' are program modules for executing the reading processing 80, the assigning processing 81, the generation processing 82, the first transformation processing 83, the second transformation processing 84 and the output processing 85, respectively. As described above, according to the first embodiment, a photographing operation when preparing a texture original image is simplified, and it is possible to remove a useless operation when extracting a necessary region from the texture original image (i.e., to delete unnecessary regions). Embodiments of the invention may comprise a system comprising a plurality of apparatuses or to an apparatus comprising a single unit. Embodiments of the invention may, of course, comprise a storage medium storing programs. By reading the programs from the storage medium into the system or the apparatus, the system or the apparatus operates in a predetermined manner.

Claims: A texture-data generation apparatus (101-104,108) for generating texture data to be used for computer graphics, said apparatus comprising: assigning means (81') for assigning a region in a texture original image serving as a base for a texture; generation means (82') for generating quadrangles, each enclosing the region assigned by said assigning means, based on a predetermined rule; extraction means (82') for extracting a quadrangle having a minimum area from among the quadrangles generated by said generation means; first transformation means (83') for transforming an image enclosed by the quadrangle extracted by said extraction means into a rectangular image having a desired size; second transformation means (84') for transforming the region assigned by said assigning means into a region in the rectangular image; and output means (85') for outputting the rectangular image obtained by said first transformation means, and information indicating the region obtained by said second transformation means as texture data. A texture-data generation apparatus according to claim 1, wherein said assigning means (81') is operable to assign the region by assigning a plurality of characteristic points representing the shape of an image, onto which the texture is to be pasted, in the texture image, and wherein said second transformation means (84') is operable to transform the plurality of characteristic points assigned by said assigning means into characteristic points at corresponding positions in the rectangular image. A texture-data generation apparatus according to claim 2, wherein said generation means (82') is operable to generate quadrangles formed by straight lines including four edges of a convex-hull polygon enclosing the plurality of characteristic points. A texture-data generation apparatus according to claim 1, wherein said first transformation means (83') comprises calculation means for calculating the positions of points in the rectangular image which correspond to points in the image enclosed by the quadrangle. A texture-data generation method for generating texture data to be used for computer graphics, said method comprising the steps of: assigning a region in a texture original image serving as a base for a texture (step S202); generating quadrangles, each enclosing the region assigned in said assigning step, based on a predetermined rule (steps S203-S207); extracting a quadrangle having a minimum area from among the quadrangles generated in said generating step (step S206); a first transforming step, comprising transforming an image enclosed by the quadrangle extracted in said extracting step into a rectangular image having a desired size (steps S208-S212); a second transforming step, comprising transforming the region assigned in said assigning step into a region in the rectangular image (step S213); and outputting the rectangular image obtained in said first transforming step, and information indicating the region obtained in said second transforming step as texture data (step S214). A texture-data generation method according to claim 5, wherein said assigning step (step S202) assigns the region by assigning a plurality of characteristic points representing the shape of an image, onto which the texture is to be mapped, in the texture image, and wherein said second transforming step (step S213) transforms the plurality of characteristic points assigned in said assigning step into characteristic points at corresponding positions in the rectangular image. A texture-data generation method according to claim 6, wherein said generating step (steps S203-S207) generates quadrangles formed by straight lines including four edges of a convex-hull polygon enclosing the plurality of characteristic points. A texture-data generation method according to claim 5, wherein said first transforming step (steps S208-S212) comprises the step of calculating the positions of points in the rectangular image which corresponds to points in the image enclosed by the quadrangle. A computer program product comprising a carrier carrying instructions for causing a programmable processing apparatus to become operable to perform each step of a method as set out in at least one of claims 5 to 8. A computer program product according to claim 9, when embodied as a data storage medium carrying the instructions.

Inventors: OHSHIMA TOSHIKAZU, UCHIYAMA SHINJI, YAMAMOTO HIROYUKI, OHSHIMA, TOSHIKAZU, UCHIYAMA, SHINJI, YAMAMOTO, HIROYUKI, OHSHIMA, TOSHIKAZU, C/O CANON K.K., UCHIYAMA, SHINJI, C/O CANON K.K., YAMAMOTO, HIROYUKI, C/O CANON K.K.
Applicants: CANON KK, CANON KABUSHIKI KAISHA
Application year: 1996
Main classification: G06T15
IPC codes: G06T15, G06T13