WO2006108988A2 - Procede de conversion d'une image a trois dimensions en image a deux dimensions - Google Patents
Procede de conversion d'une image a trois dimensions en image a deux dimensions Download PDFInfo
- Publication number
- WO2006108988A2 WO2006108988A2 PCT/FR2006/050323 FR2006050323W WO2006108988A2 WO 2006108988 A2 WO2006108988 A2 WO 2006108988A2 FR 2006050323 W FR2006050323 W FR 2006050323W WO 2006108988 A2 WO2006108988 A2 WO 2006108988A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- image
- dimensional image
- vector
- contour
- components
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—Three-dimensional [3D] image rendering
- G06T15/10—Geometric effects
Definitions
- the present invention generally relates to the field of image processing, and in particular to methods for converting three-dimensional images into two-dimensional images.
- two-dimensional vector image formats that allow an intermediate representation between a three-dimensional image and the rendering image on a terminal. These have the advantage of removing part of the calculation on the terminal, with a reduced representation format compared to a two-dimensional pixel image.
- Three-dimensional image conversion systems in two-dimensional vector images are based on the projection of each polygon or triangle of the three-dimensional image on a projection surface, each polygon or triangle being projected one by one. Each projected triangle or polygon is then encoded in vector form, with adjacent triangles or polygons sometimes being merged into a single vector outline. These systems nevertheless have the disadvantage of using a lot of memory space, since each triangle or polygon of the initial image is encoded in vector form. In addition, these systems do not effectively solve the problems of overlap between several triangles or to distinguish if a triangle is in front or behind another triangle when the two triangles are intersected.
- the conversion process resolves the overlap problems between intersecting triangles.
- the vector image resulting from the method minimizes the memory resources required for storage according to the desired accuracy.
- the vector images resulting from the invention can be used in an animation by limiting the phenomena of discontinuity of movement between the successive vector images.
- the invention proposes a method for converting a three-dimensional image into a two-dimensional image, characterized in that it comprises the steps of:
- the invention advantageously makes it possible to overcome the problems of overlap between triangles of the components of the three-dimensional image during their projection.
- the three-dimensional image thus converted by the method according to the invention is for example used to be sent to a terminal of low capacity.
- the latter thus benefits from displaying a three-dimensional image of acceptable quality while using less computational resources than if he himself computed a conventional rendering of three-dimensional image.
- the method comprises the additional step of detecting, in the first pixel image obtained at the end of the first application step, the exterior and interior contours of the color and topologically independent regions. said pixel image.
- This saving of memory resources may be essential to allow a low-capacity terminal using the invention to provide a good quality of service, especially in the case of a video service.
- the method comprises the additional step of polygonal approximation by subdivision of the contours detected at the end of the additional detection step, in vector contours, to obtain a two-dimensional vector image.
- This vector coding simplifies the coding of the two-dimensional image obtained, and makes it possible to further reduce the memory resources necessary for this coding.
- each vector contour obtained is oriented along a direction of travel, which indicates whether said vector contour is an inner contour or an outer contour of a colored region of the obtained two-dimensional vector image.
- This orientation obeys a recognized convention of vector coding and makes it possible to obtain a vector image easily reusable by formats of type SVG, according to the English Scalable Vector Graphics.
- the contours detected at the end of the additional detection step pass between the adjacent pixels of each colored and topologically independent region of the first pixel image obtained at the end of the step. first application.
- This positioning of the contours makes it possible to dilate the external contours and to contract the inner contours, which has the advantage of eliminating any parasitic pixels between two regions. Indeed, the numerical approximation due to the projection step may cause pixels of image background between regions which should instead be touching.
- the method comprises the additional steps of:
- the method comprises the additional steps of detecting, in the second pixel image obtained at the end of the second application step, distinct sets of pixels marking fold lines, and polygonal approximation by subdivision of said fold lines into vector fold lines.
- the coding of the fold lines in vector form makes it possible to integrate them into the coding format of the vector image obtained previously, containing the vector contours of the two-dimensional image resulting from the process.
- the invention also relates to a method of using successive vector images obtained at the end of the additional polygonal approximation step of the conversion method, said conversion method being applied to three-dimensional images of an animation for producing said successive vector images, characterized in that a current vector image of said successive vector images is corrected using a previous vector image, in order to limit the discontinuities of movement between said vector images.
- the invention also relates to a computer program comprising instructions for implementing the methods of converting a three-dimensional image into a two-dimensional image, and using images. vectors in an animation, according to the invention, when said program is executed on a computer.
- the invention also relates to a device for converting a three-dimensional image into a two-dimensional image containing means for implementing the previously presented methods.
- the invention also relates to a graphics engine containing means for implementing the previously presented methods.
- the device for converting a three-dimensional image into a two-dimensional image and the graphics engine have advantages similar to those of the processes.
- FIG. 1 represents the different steps of the method according to the invention
- FIG. 2 represents the steps of the algorithm used during the first step of the method according to the invention
- FIG. 3 represents a three-dimensional image inside a pyramid of view formed by the angle of view of an observer
- FIG. 4 represents a pixel image obtained at the end of the second step of the method according to the invention
- FIG. 5 represents a triangle of a three-dimensional image seen from the front and a triangle of a three-dimensional image seen from behind, from the point of view of an observer
- FIG. 6 represents an image of pixels obtained at the end of the second step of the method according to the invention, carried out according to a first variant
- FIG. 7 represents an image of pixels obtained at the end of the second step of the method according to the invention, carried out according to a second variant
- FIG. 8 represents the steps of carrying out the second step of the method according to the invention, according to a second variant
- FIG. 9 represents an outer contour of a pixel region
- FIG. 10 represents the steps of an edge detection algorithm used during the third step of the method according to the invention.
- FIG. 11 represents the steps of a polygonal approximation algorithm by subdivision of an edge of pixel regions, used during the fourth step of the method according to the invention
- FIG. 12 represents an outline of a region of pixels subdivided into two outlines
- FIG. 13 represents a contour of a region of pixels subdivided into four outlines
- FIG. 14 shows the use of an enlarged pixel image to expand outward contours of regions and to contract interior contours of regions.
- the elements of the meshes of a three-dimensional image are converted into a set of two-dimensional zones, which can be represented by minimizing the number of vectors per contour.
- the elements of a mesh of the three-dimensional image are described in terms of vertices, edges between these vertices, and triangles or polygons formed by these vertices and edges. These elements describe one or more three-dimensional objects in the image that have a common property, for example the same texture.
- a mesh can therefore be represented as a graph, in which each vertex of the graph is a vertex of the mesh, and in which the edges of the graph are the edges that connect the vertices of the mesh.
- the meshes of the three-dimensional image do not include polygons with more than three sides. It should be noted that a three-dimensional image mesh also contains many other data about its elements, which will not be detailed here, such as data on their texture, color or lighting.
- a first step E1 of the method according to the invention represented in FIG. 1, the meshes of the three-dimensional image are divided into components.
- the components of a three-dimensional mesh are the elements of the mesh that are not topologically related to each other.
- each eye forms a component of the mesh.
- the graph formed by this mesh is traversed vertex by vertex, so as to determine the elements of the graph which are independent of each other, of a topological point of view.
- steps E2, E3 and E4 of the process according to the invention correspond respectively to: - The creation of a symbolic image, corresponding to a visualization of the three-dimensional image according to the point of view of an observer, - The detection of the different colored regions of this symbolic image, - And to an approximation of the contours of these regions by vector contours.
- All these steps of the method according to the invention can be implemented in a graphics rendering engine, such as OpenGL or DirectX.
- a graphics rendering engine such as OpenGL or DirectX.
- the realization of the symbolic image can use an engine of graphic rendering initialized so that lighting and anti-aliasing options are not used.
- intermediate data are stored in specific memories, as detailed below. Nevertheless the other intermediate data, even if not explicitly indicated, may be stored in memory until the final two-dimensional image resulting from the method according to the invention is obtained.
- Step E1 is explained through the steps of the flow chart of Figure 2, which are as follows:
- the first step ai is the initialization to zero of a counter called
- ComponentNum which makes it possible to number all the components of all the meshes of the three-dimensional image in a unique way. It should be noted that although the numbering of a component of the image does not include a reference to the mesh to which this component belongs, this membership is retained in the data associated with each component obtained during step E1. This allows the end of the process to recolor each area of the two-dimensional image from the process in a color approximated to that of the three-dimensional component at the origin of this area.
- the next step a2 is the selection of a mesh M not already scanned in the three-dimensional image. For example, if the list of meshes of the image is copied into a variable in which the meshes traversed are deleted as and when, just select the first mesh of this variable.
- the next step a3 is the verification that the mesh M selected in step a2 exists, that is to say that all the meshes of the image have not already been browsed. If all the meshes of the image have been traveled, the step E1 is completed, all the components of the image being identified by a component number. Otherwise the next step is step a4. Step a4 is the search for the first vertex S in the selected mesh M that is not already marked as belonging to a component.
- the next step a5 is the verification of the existence of this vertex S sought in step a4. If no untagged vertex has been found, it is because the selected mesh M is completely traversed, and the next step is step a6. In the opposite case, that is to say if the vertex S exists, the next step is step a1.
- Step a6 is the marking of the mesh M as a traversed mesh, for example by deleting it from the list of meshes, and the transition to the next mesh that has not already been traversed by returning to step a2.
- Step a7 is the recursive path of all the vertices connected to the vertex S, marking them as belonging to the number component "ComponentNum".
- step a8 is the incrementation of a unit of the counter "ComponentNum" to find a possible other component not yet identified in the mesh M selected.
- step a ⁇ is followed by step a4.
- step E2 of the method according to the invention.
- FIG. 1 Two variant embodiments of step E2 are presented.
- the components of the three-dimensional image, represented in FIG. 3 in an orthonormal frame (O, x, y, z) are projected onto a local reference projection surface Sf (O ', X , Y), from the point of view Po of an observer.
- Sf a local reference projection surface
- Compi which is a rectangular surface
- Comp2 which is a triangular surface
- each pixel of the surface Sf is initialized without color marking and recorded in a memory space called "frame-buffer".
- the depths of each pixel of the surface Sf are initialized with a depth much greater than that of the components of the three-dimensional image, and are recorded in a memory space called "Z-buffer”.
- Each projected component is assigned a different color for each component, and then this component is scanned pixel by pixel on the surface Sf, according to the conventional algorithm called "Z-buffer”: during this course, the depth and the color of a pixel of the component are respectively stored in the memory “Z-buffer” and the memory “frame-buffer” if the depth of this pixel is less important than the depth of the corresponding pixel stored in the memory "Z- buffer ".
- the pixel depth of a component is calculated from the depth coordinates retained for each component during its projection on the surface Sf Thus, only the data corresponding to the pixels closest to the observer are stored in the memories "Z-buffer” and "frame-buffer".
- a symbolic pixel image is obtained in which each projected component is associated with a color and in which portions of the three-dimensional image that are not visible from the observer are not represented.
- the symbolic image IS1 obtained at the end of step E2 in the example given in FIG. 3 is represented in FIG. 4.
- step E2 only the triangles seen from the front of the components of the three-dimensional image on the surface Sf are projected from the point of view Po. These triangles are then applied to these triangles.
- 'Z-buffer' algorithm as in the first variant previously described, the triangles of different components being colored with different colors.
- the triangles seen from behind components of the three-dimensional image are then projected in turn on the surface Sf.
- the triangles of different components are colored with different colors, not previously used during the first application of the "Z-buffer” algorithm.
- the triangles seen from the front of a component are distinguished from the triangles seen from behind by this same component by the orientation of the normal vectors associated with each of the triangular surfaces of the component.
- These normal vectors are usually used by graphics engines to calculate lighting on different surfaces of a three-dimensional object from a light source.
- the orientation of the normal vectors of each of the triangles of a component with respect to the projection surface Sf makes it possible to determine whether a given triangle is seen from the front or seen from behind from the point of view Po of an observer , represented in FIG. 5.
- the vector normal to a triangle TrA is directed towards the space of the observer, this triangle is seen from the front.
- the vector normal to a triangle TrB is directed to the other side, this triangle is seen from behind.
- This second variant embodiment of the step E2 makes it possible to obtain a symbolic image in which the elements of a component seen from the front have a color different from the elements of this same component seen from behind. This allows in some cases to better visualize the perspective of objects in three dimensions, such as a ribbon which we see a part of the back.
- FIG. 6 represents the symbolic image IS2 obtained with a ribbon when this second variant of step E2 is used, and FIG.
- step E2 represents the symbolic image IS3 obtained with this same ribbon when it is sufficient to use the first variant of step E2.
- step E2 The flowchart of FIG. 8 explains the steps of the second variant embodiment of step E2, detailed below.
- the first step b1 is the initialization of variables useful for the realization of this variant:
- CompNum a number called “CompNum” of the component to be processed in the three-dimensional image, is initialized to zero, the coloring color called “CouleurNum”, used during the application of the "Z-buffer” algorithm, is initialized to a very low gray level,
- the memory "Z-buffer" which preserves the depths of all the pixels of the projection surface Sf, is initialized to a maximum depth for all the pixels, for example an infinite depth
- the "frame-buffer” memory which keeps the colors of all the pixels of the surface Sf, is also initialized with a so-called background color, which is not used as coloring color "ColorNum", for all the pixels .
- the next step b2 is the selection of the component c of number "CompNum" in a list of components of the three-dimensional image.
- the next step b3 is the verification of the existence of the component c obtained in step b2. If the component c does not exist, it is because all the components of the three-dimensional image have been processed. In this case the next step is step b9, otherwise the next step is step b4.
- Step b4 is the determination of the triangles seen from the front of the component c. This determination uses the normal vectors associated with these triangles, as explained previously.
- the next step b5 is the projection of the triangles obtained in step b4 on the projection surface Sf, with respect to the point of view Po. The depths of the vertices of these triangles are kept in the coordinates of the projected triangles.
- the next step b6 is the application of the "Z-buffer" algorithm to the triangles projected in step b5, each triangle being colored with the gray level "ColorNum”.
- the next step b7 is the incrementation of a unit of the "CompNum" number of the component to be processed, to consider a next component.
- the next step b ⁇ is likewise the incrementation of a unit of the gray level "CouleurNum”.
- the next step is again step b2, to process another component, all the triangles seen from the front of all the components of the three-dimensional image to be projected and then subjected to the Z-buffer algorithm before go to step b9.
- Step b9 is the reset to zero of the "CompNum” number of the component to be processed. It should be noted that the color "CouleurNum” to be applied during the algorithm of the "Z-buffer” is not reinitialized, since the elements of the components seen from behind will not be colored of the same color as those seen from before . At this stage, all components of the three-dimensional image have already passed through steps b4 to b6.
- the "Z-buffer” memory as well as the "frame-buffer” memory contain the depth and color data of the pixels of the elements seen from the front of the three-dimensional image, projected onto the surface Sf. is the selection of the number c component
- the next step b11 is the verification of the existence of component c. If the component c does not exist, it is because all the components of the three-dimensional image have been processed. In this case, the step E2 according to the second embodiment is completed, and the "frame-buffer" memory contains the symbolic image made of pixels colored with the various "ColorNum” gray levels used. Otherwise the next step is step b12.
- Step b12 is the determination of the triangles seen from behind of the component c. This determination uses the normal vectors associated with these triangles, as explained previously.
- the next step b13 is the projection of the triangles obtained in step b12 on the projection surface Sf, with respect to the point of view Po. The depths of the vertices of these triangles are kept in the coordinates of the projected triangles.
- the next step b14 is the application of the "Z-buffer" algorithm to the triangles projected in step b13, each triangle being colored with the "ColorNum” gray level.
- the next step b15 is the incrementation of a unit of the "CompNum" number of the component to be processed, to consider a next component.
- the next step b16 is likewise the incrementation of a unit of the gray level "ColorNum”.
- the next step is again step b10, to process another component, all the triangles seen from behind all the components of the three-dimensional image to be projected and then submitted to the Z-buffer algorithm to obtain the symbolic image.
- the symbolic image obtained at the end of step E2 has the following properties: It contains as many or more zones of different colors as there are components present in the three-dimensional image. It contains at most the same number triangles than triangles in the three-dimensional image.
- the finality of the symbolic image obtained is not to be visualized, given, among other things, that it consists of pixels, which is very expensive in memory resources, and that its colors are not those of the original three-dimensional image.
- One way of coding this symbolic image in a less expensive way in memory resources is to have a description of the contours of each zone of different color in the symbolic image. These areas are in the following called regions. This detection of the outlines of the regions of the symbolic image is the object of step E3, represented in FIG.
- a region is defined by a set of pixels of the same component color, contained within an outer contour, and possibly outside one or more inner contours if holes or other regions are present within this first region.
- a hole is defined by an inner contour of a region, and may contain both unicoloured, i.e., non-component, and colored pixels of other regions.
- the unicoloured pixels indeed correspond to the background color of the symbolic image. It should be noted that several regions of the symbolic image may have the same color, for example if from the point of view Po a sectional component another in two.
- An outline is defined by a sequence of pixel vertices, and by a direction of travel of this sequence of pixels.
- an outer contour is a series of vertices of pixels that travels in the opposite direction of the trigonometric direction the outer contour of the region with which it is associated.
- An example of an outer contour is given in FIG. 9.
- the outer contour of the region formed by the pixels p22, p23, p33 and p34, the pixel pij denoting the pixel located on the line i and the column j of a symbolic image is the sequence of vertices ⁇ s22, s23, s24, s34, s35, s45, s44, s43, s33, s32 ⁇ , where sij denotes the top left vertex of the pixel pij.
- An inner contour is a series of vertices of pixels that trigonometrically traverses the edge of a hole in the region associated with that contour.
- an outline is described as a list of left superior vertices of pixels ⁇ si, ..., s n ⁇ , which must be traversed in the order of this list, and where n is an integer greater than one.
- an oriented edge (sij, ski) of this contour is the edge coming from the vertex sij and from the ski end, where sij and ski are the upper left vertices respectively of the pixels pij and pkl.
- An example of an algorithm for monitoring the external course of a region uses as a starting point an oriented edge (sij, ski) belonging to the outer contour of this region.
- an example of an algorithm for tracking an inner course of a region uses as a starting point an oriented edge (sij, ski) belonging to this inner contour. From this edge, we look for the vertex smn such that the oriented edge (ski, smn) belongs to an edge of the region and is directed as far as possible to the left with respect to (sij, ski), without returning to back. We do the same from the oriented edge (ski, smn), and recursively we build a list of vertices until we return to the starting vertex sij. The list of vertices thus obtained at the end of the algorithm describes an inner contour of the region.
- this image is traveled line by line from left to right.
- a buffer image is used to store the contours and regions detected as the symbolic image travels. In particular, it makes it possible to determine whether a pixel of the symbolic image has already been traversed, whether it is on an already detected region, or whether one of its edges belongs to an already traversed contour. It should be noted that following step E2, the colors of the pixels of the symbolic image make it possible to connect each region of the buffer image to a component of the three-dimensional image.
- the first step d is the initialization of the buffer image, so that it does not contain any contours or regions at this stage of the algorithm.
- the current pixel p of course of the image defined as located at the current line "line” and the current column "col" is also initialized to the first upper left pixel of the image.
- the current line is therefore initialized to the first line and the current column in the first column of the image.
- the next pixel is defined as located on the same line as the current pixel but on the column immediately to the right of the current column. It is therefore initialized in the first line and in the second column of the image.
- the next step c2 is a test on the current pixel.
- next step is step c3, otherwise the next step is step c7.
- Step c3 is again a test on the current pixel. If the current pixel belongs to a region of the buffer image, it is that the detected contour is an inner contour of this region. In this case the next step is step c11.
- Step c4 is the creation of new region R variables and outer contour C, corresponding to the new region and new contour detected in steps c2 and c3.
- the next step c5 is the tracking of the outer contour C, using the algorithm described above with the initial edge as the upper edge of the next pixel, oriented to the right.
- the next step c6 is updating the buffer image with the contour
- next step c7 is a test on the next pixel. If the next pixel is at the end of the line, we go to step c ⁇ , otherwise we go to step c10. Step c ⁇ is again a test on the next pixel. If this one is on the last line, then the image has been completely traversed, the algorithm of course is finished. Otherwise the next step is step c9.
- Step c9 is updating the current pixel p to the first column of the line that follows the current line.
- the current line, the current column, and the next pixel are also updated according to this new pixel current.
- the next step is then again step c2, to continue the path of the image.
- Step c10 is also the updating of the current pixel p to the next pixel, but in the case where the current pixel p was not at the end of the line.
- the current line, the current column, and the next pixel are updated according to the new current pixel.
- the next step is again step c2, to continue the path of the image.
- Step d 1 is the creation of a new inner contour variable, corresponding to the new contour detected in step c2.
- the next step c12 is the tracking of the inner contour created in step d 1, using the algorithm described above with the left edge of the next pixel downward as the initial edge.
- the next step c13 is the update of the buffer image with the inner contour created in step c11 and completed in step c12, associated with the region to which the current pixel belongs.
- the next step c14 is a test on the color of the current pixel. If the current pixel has the same color as the background of the image, the process of moving the image is continued by going to step c7. Otherwise, it means that a new region has just been detected inside the hole previously detected in step c3. The next step is then step c4, in order to determine the new detected region and its associated external contour
- the buffer image contains all the regions and outlines of the symbolic image.
- the outer contours obtained are dilated and the inner contours are contracted to remove any parasitic pixels having the background color between the regions of the symbolic image. Indeed the calculations necessary for the projection of the components during the step E2 induce numerical approximation errors likely to cause the appearance of these parasitic pixels.
- One way to effect this expansion of the outer contours and contraction of the inner contours is to use an ISA symbolic image shown in FIG. 14, enlarged by one pixel in width and one pixel in height relative to the symbolic image. original ISO. The original symbolic image is superimposed on this enlarged image, centered on the enlarged symbolic image.
- the contours of the regions contained in the buffer image are then plotted on the original symbolic image.
- the buffer image contains an inner contour CIO and an outer contour CEO.
- the outer contours are then plotted on the enlarged symbolic image by rounding the outer contours of the original image to the nearest outer edges in the enlarged image.
- the inner contours are likewise drawn on the enlarged symbolic image but round the inner contours of the original image to the nearest inner edges in the enlarged image.
- the outer outline OWC is rounded to the outer contour CEA on the enlarged symbolic image, while the inner contour CIO disappears on the enlarged symbolic image, thus eliminating a parasitic pixel.
- the outlines of the enlarged symbolic image thus obtained are then reduced to the format of the original symbolic image to obtain new inner and outer contours respectively contracted and dilated.
- the last step E4 of the method represented in FIG. buffer image in a series of vector contours of regions.
- the colors of the regions associated with these contours are stored in memory in order to produce, by correspondence with the initial colors of the meshes of the three-dimensional image, a two-dimensional image that looks like the visualization of the initial three-dimensional image, from the point of view Po.
- Step E4 uses the algorithm shown in FIG. 11 to transform a contour of the buffer image, formed by successive pixel vertices, into a limited sequence of vectors reproducing the contour according to the desired accuracy.
- the steps of this algorithm are as follows, the first four steps used to initialize the algorithm:
- the first step d1 consists in finding the vertices S 1 and S 2 furthest away from a contour C 0 of the buffer image, represented in FIG. 12.
- the next step d2 is the construction of two contours Ci and C 2 associated respectively with the vectors ⁇ ⁇ and V 2 , such that ⁇ ⁇ is the vectors ⁇ ,
- contour C 0 is defined by the following vertexes - n is an integer greater than 1
- contour Ci is defined by the following of vertices ⁇ if S ⁇ i, Si, S 2 ,
- the next step d3 is the creation of a vector contour C v , initially empty and which will contain at the end of the algorithm the sequence of vectors describing C 0 .
- the next step d4 is the creation of a list of contours to subdivide, each contour of the list being associated with a vector.
- This list is initialized with the contours Ci and C 2 , associated respectively with the vectors Vi and V 2 .
- the next step d5 is the selection in the list of contours to be subdivided, of a current contour C 1 associated with a current vector Vi.
- This current contour is for example the first contour of the contour list to be subdivided.
- the next step d6 is a test on the existence of the current contour Cj. If this contour does not exist, it means that the list of contours to be subdivided is empty, which means that the algorithm is finished. Otherwise the next step is step 61.
- Step d7 is the determination in the current contour C 1 of the vertex S Ma ⁇ belonging to this current contour which is furthest from the current vector Vi.
- Step d8 is a test on the distance D max between the vertex S Ma ⁇ and the current vector Vi. If this distance is greater than a threshold D seu ii, which sets the desired accuracy of approximation of the contour C 0 by the vector contour C v , then the determination of other vectors closer to the current contour C 1 than the vector is continued. current Vi by going to step d11. In the opposite case, the precision obtained is acceptable and the next step is step d9.
- Step d9 is the addition to the contour C v of the inverse -Vi of the current vector
- the next step d10 is the deletion of the current contour C 1 in the list of contours to be subdivided. Indeed the accuracy of the current vector Vi is sufficient to approach the current contour C 1 , it no longer needs to be subdivided.
- the next step is step d5, in order to continue the algorithm with the processing of the remaining contours to be subdivided.
- Step d11 is the subdivision of the current contour into two contours C k and
- Ci associated respectively with the vectors Vk and V / such that if the current contour C 1 is defined by the sequence of vertices ⁇ si, ..., s h , ..., s m ⁇ , where: h and m are integers such that 1 ⁇ h ⁇ m,
- the current vector is the vector S 1n S 1 , and S Ma ⁇ is the vertex s h , then the contour C k is the contour defined by the sequence of vertices ⁇ s h , s h- i, ..., S 2 , Si ⁇ and the contour d by the following of vertices ⁇ s m , s m- i, ..., s h + i, s h ⁇ , the vector Vk being the vector ⁇ and the vector V / being the vector s h s m .
- the next step d12 is the addition of the contours C k and d associated respectively with the vectors Vk and V /, in the list of contours to be subdivided, for example at the beginning of the list.
- the next step d13 is the deletion of the current contour C 1 in the list of contours to be subdivided, since this contour has just been replaced by two other contours.
- the next step is step d5, the contours to be subdivided being processed until the vectors satisfactorily approach the contours with which they are associated.
- the contour C 0 has been subdivided into four contours C 3 , C 4 , C 5 and C 6 , associated respectively with the vectors V 3 , V 4 , V 5 and V 6 .
- the final vector contour C v corresponding to the contour C 0 is therefore the contour ⁇ -V 6 , -V 5 , -V 4 , -V 3 ⁇ .
- a two-dimensional vector representation of the initial three-dimensional image is obtained for each from which the direction of travel makes it possible to determine whether it is an outer contour or an inner region contour. It is then sufficient to reassociate each region of this representation with the original color of the corresponding mesh in the initial three-dimensional image, to obtain a visualization of the initial three-dimensional image from a point of view of an observer under shape of a two-dimensional vector image.
- This vector image is easily reusable by image presentation software using the SVG format for example, according to the English Scalable Vector Graphics, and is very inexpensive in memory resources.
- the application of the invention to a three-dimensional image animation may present visual discomfort due to discontinuity phenomena, the different two-dimensional vector images obtained being calculated independently of one another.
- the coherence of the temporal movement of the different vector contours associated with these images is indeed affected by the different steps of the conversion process, in particular the polygonal approximation step, which does not take into account the notion of movement of the processed image. in an animation.
- step E4 to soften the movements of the vector contours during the animation, instead of using the polygonal approximation algorithm, the vector contours of the previous image in the animation are used.
- Each vector contour of the preceding image is applied to the corresponding inner or outer contour in the current buffer image of the animation, by a method of elasticity: from the center of the inner or outer contour, the vertices of the contour are deformed vector that is superimposed on them by projecting them on the inner or outer contour of the current image. For each region of the current image, one thus obtains one or more corresponding vector contours.
- a vector contour and its associated region contour form a series of contours, comparable to an intermediate result of the polygon approximation algorithm previously described, that is to say to a list of contours to be subdivided.
- We can therefore use this algorithm to correct the vector contour the algorithm being initialized with a list of contours to subdivide containing this sequence of outlines. So if the vector outline is close enough to the corresponding contour, it is used as is in the animation, otherwise it is subdivided using the polygon approximation algorithm.
- This use of the previous vector contours to obtain current vector contours makes it possible to soften the movements, because the vertices of the vector contours move less, which improves the visualization of the animation.
- the first embodiment of the method according to the invention described above is enriched by adding, in the two-dimensional image resulting from the process, lines which mark the folds. important components of the initial three-dimensional image.
- This second embodiment is interesting when the detection of these fold lines by the graphics rendering engine that uses this method does not use excessive computing resources.
- the fold lines are treated independently of the other components of the initial three-dimensional image, which is processed according to the steps E1 to E4 described above.
- the important fold lines of the three-dimensional image are first identified.
- One way of detecting these fold lines is, for example, to traverse all the pairs of adjacent triangles within each of the components identified in step E1. During this course, if two adjacent triangles form an acute angle less than a certain threshold at their common edge, then this edge is potentially an important fold line to take into account.
- edges There are two types of edges to distinguish:
- the silhouette edges are edges that share two triangles, one of which is a front face and the other a back side, that is, the normals of these triangles point in different directions from the point of view Po.
- the folding edges are edges which share two triangles forming a very pronounced angle, but which are either both front faces are both rear faces.
- the silhouette lines are reproduced as contour lines after the projection on the surface Sf during the step E2 and therefore do not require a separate projection.
- the "frame-buffer” memory and the "Z-buffer” memory obtained at the end of step E2 which contain the symbolic image, are copied for use in processing fold lines. These are projected onto the projection surface Sf, from the point of view Po, the depths of the vertices that compose them being stored in memory, then processed according to the "Z-buffer” algorithm from the copy of the memories "Z-buffer” and "frame-buffer” obtained at the end of step E2.
- the fold lines are colored during this treatment with a color distinct from those used in step E2, for example in black. This makes it possible to obtain only the parts visible from the point of view Po, fold lines in the three-dimensional image. At the end of this treatment we obtain a symbolic image enriched with fold lines, and distinct from that used in step E3.
- This symbolic image enriched with folding lines is then scanned pixel by pixel in order to code these features as distinct sets of pixels. These pixel sequences are considered as undirected contours.
- step E4 the algorithm used in step E4 can be reused, but starting directly at step d4 shown in FIG. 11.
- the list of contours to be subdivided at step d4 of initialization of the algorithm contains only this contour, the latter being associated with a vector joining the pixels which are located at the ends of the fold line by their vertices.
- the algorithm of step E4 is reused without modifications.
- the vector fold lines are then added to the vector image obtained at the end of step E4.
- a visualization of the initial three-dimensional image from the point is obtained. view of an observer in the form of a two-dimensional vector image, but enriched with fold lines that better reflect the perspective of the objects represented.
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
Description
Claims
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR0503597 | 2005-04-11 | ||
| FR0503597 | 2005-04-11 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| WO2006108988A2 true WO2006108988A2 (fr) | 2006-10-19 |
| WO2006108988A3 WO2006108988A3 (fr) | 2007-02-22 |
Family
ID=34955037
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/FR2006/050323 Ceased WO2006108988A2 (fr) | 2005-04-11 | 2006-04-10 | Procede de conversion d'une image a trois dimensions en image a deux dimensions |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2006108988A2 (fr) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115965712A (zh) * | 2023-03-16 | 2023-04-14 | 深圳市规划和自然资源数据管理中心(深圳市空间地理信息中心) | 一种建筑物二维矢量图构建方法、系统、设备及存储介质 |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| AU5702596A (en) * | 1996-05-16 | 1997-12-05 | Original Design Inc. | Method and apparatus for generation of projection image data |
| JPH09330423A (ja) * | 1996-06-13 | 1997-12-22 | Fujitsu Ltd | 三次元形状データ変換装置 |
-
2006
- 2006-04-10 WO PCT/FR2006/050323 patent/WO2006108988A2/fr not_active Ceased
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115965712A (zh) * | 2023-03-16 | 2023-04-14 | 深圳市规划和自然资源数据管理中心(深圳市空间地理信息中心) | 一种建筑物二维矢量图构建方法、系统、设备及存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2006108988A3 (fr) | 2007-02-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Newson et al. | Video inpainting of complex scenes | |
| CN112102477B (zh) | 三维模型重建方法、装置、计算机设备和存储介质 | |
| CN114170311B (zh) | 一种双目立体匹配方法 | |
| US11164319B2 (en) | Machine learning feature vector generator using depth image foreground attributes | |
| Sasaki et al. | Joint gap detection and inpainting of line drawings | |
| EP1059611A1 (fr) | Appareil de traitement d'images | |
| WO2001099052A1 (fr) | Raffinement d'un maillage triangulaire en trois dimensions | |
| US9224238B2 (en) | Seamless texturing of 3D meshes of objects from multiple views | |
| CN112508991B (zh) | 一种前后景分离的熊猫照片卡通化方法 | |
| KR20050030569A (ko) | 화상 처리 장치 및 그 방법 | |
| Zhou et al. | Drawingspinup: 3d animation from single character drawings | |
| CN112308804B (zh) | 图像处理方法、装置、电子设备及计算机可读介质 | |
| CN118096601A (zh) | 基于小波变换与多尺度残差网络的图像修复方法及系统 | |
| EP2297705B1 (fr) | Procede de composition temps reel d'une video | |
| CN112132750A (zh) | 一种视频处理方法与装置 | |
| CN115115399A (zh) | 对象推荐方法、装置、设备、介质及计算机程序产品 | |
| FR2781907A1 (fr) | Procede de codage d'un maillage source tenant compte des discontinuites, et applications correspondantes | |
| WO2014023887A1 (fr) | Procédé de rendu d'image en temps réel | |
| Alliez et al. | Efficient view-dependent refinement of 3D meshes using sqrt {3}-subdivision | |
| CN115937343A (zh) | 一种基于结构张量的图像局部纹理稳定场重建方法 | |
| EP1121665B1 (fr) | Procede de codage d'un maillage source, avec optimisation de la position d'un sommet resultant d'une fusion d'arete, et applications correspondantes | |
| CN119515733B (zh) | 基于自适应人脸对称的人脸阴影消除方法及装置 | |
| Feldman et al. | Depth completion with rgb prior | |
| CN121746446B (zh) | 基于分层最小曲面重构的激光雷达深度补全方法 | |
| Boldyš et al. | Exemplar-based inpainting with rotation invariant patch matching |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| WWW | Wipo information: withdrawn in national office |
Country of ref document: DE |
|
| NENP | Non-entry into the national phase |
Ref country code: RU |
|
| WWW | Wipo information: withdrawn in national office |
Country of ref document: RU |
|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 06726329 Country of ref document: EP Kind code of ref document: A2 |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 06726329 Country of ref document: EP Kind code of ref document: A2 |
|
| WWW | Wipo information: withdrawn in national office |
Ref document number: 6726329 Country of ref document: EP |