JP5504142B2 - Image processing apparatus, image processing method, and image processing program - Google Patents

Image processing apparatus, image processing method, and image processing program Download PDF

Info

Publication number
JP5504142B2
JP5504142B2 JP2010274373A JP2010274373A JP5504142B2 JP 5504142 B2 JP5504142 B2 JP 5504142B2 JP 2010274373 A JP2010274373 A JP 2010274373A JP 2010274373 A JP2010274373 A JP 2010274373A JP 5504142 B2 JP5504142 B2 JP 5504142B2
Authority
JP
Japan
Prior art keywords
patch
primitive
image
vertex
curved surface
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.)
Expired - Fee Related
Application number
JP2010274373A
Other languages
Japanese (ja)
Other versions
JP2012123655A (en
Inventor
けん 筒口
明 小島
聡 嶌田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2010274373A priority Critical patent/JP5504142B2/en
Publication of JP2012123655A publication Critical patent/JP2012123655A/en
Application granted granted Critical
Publication of JP5504142B2 publication Critical patent/JP5504142B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

本発明は、パラメトリック曲面を用いたベクトルデータで表される画像内の領域を編集する技術に関する。   The present invention relates to a technique for editing an area in an image represented by vector data using a parametric curved surface.

デジタルカメラやビデオカメラ等で撮影された画像は、一般に、ビットマップ形式で保存され、利用されることが多い。ビットマップデータは、画像を画素に分割し、あらゆる画像を様々な色の画素の集合として取り扱うため、ビットマップ形式の画像は写実性に優れているが、画像をオブジェクト単位で編集することは容易ではなく、拡大表示した際に画質の劣化が生じてしまう。なお、オブジェクトとは、画像内に撮影された意味のあるまとまりを意味し、例えば、人物、頭部、机、車両等の像に代表される。   In general, images taken with a digital camera, a video camera, or the like are often stored and used in a bitmap format. Bitmap data divides an image into pixels and handles all images as a set of pixels of various colors, so bitmap images are excellent in realism, but it is easy to edit images in units of objects. Instead, the image quality deteriorates when enlarged display is performed. Note that an object means a meaningful group captured in an image, and is represented by an image of a person, a head, a desk, a vehicle, or the like.

一方、図形をベースとするベクトル形式のデータは、ベクトルデータが関数的な数値で表され、オブジェクト自体が数式に基づいて描画されるため、オブジェクト単位での編集が容易であり、拡大表示してもオブジェクトの正確性が保たれ、一定の画質が保持される。   On the other hand, vector-based data based on figures is easy to edit on an object-by-object basis because vector data is represented by functional numerical values and the object itself is drawn based on mathematical formulas. However, the accuracy of the object is maintained, and a constant image quality is maintained.

このような背景下、現在では、ビットマップ形式の画像(以下、ビットマップ画像)をベクトル形式のデータに変換する手法が提案されている(非特許文献1、2参照)。これらの手法は、元のビットマップデータが持つ画質(すなわち写実性)を可能な限り損なわないようにして、できるだけ少ない数の図形要素を持つベクトルデータに変換することを特徴としている。   Under such a background, a technique for converting a bitmap format image (hereinafter referred to as a bitmap image) into vector format data has been proposed (see Non-Patent Documents 1 and 2). These methods are characterized in that the original bitmap data is converted into vector data having as few graphic elements as possible without impairing the image quality (that is, the realism) of the original bitmap data as much as possible.

具体的には、図13に示すように、撮影されたビットマップ画像内のオブジェクトを閉領域とみなし、その閉領域の輪郭及び内部を閉領域内の色の変化等に基づいて「辺がパラメトリック曲線で構成される三角形」や「辺がパラメトリック曲線で構成される矩形」に分割し、閉領域の輪郭や分割領域の境界をパラメトリック曲線で近似すると共に、その三角形又は矩形の内部の色をビットマップ画像内の一部の画素の色を参照して数式に基づいて補間することにより、ベクトルデータへの近似化な変換を実現している。以下、辺がパラメトリック曲線で構成される三角形や矩形を、「曲面パッチ」という。   Specifically, as shown in FIG. 13, an object in the captured bitmap image is regarded as a closed region, and the edge of the closed region and the inside thereof are changed based on a change in color in the closed region. Divide into “triangles composed of curves” and “rectangles composed of parametric curves”, approximate the contours of closed areas and boundaries of divided areas with parametric curves, and bit the colors inside the triangles or rectangles An approximation conversion to vector data is realized by referring to the colors of some of the pixels in the map image and interpolating based on mathematical expressions. Hereinafter, a triangle or rectangle whose sides are formed by parametric curves is referred to as a “curved surface patch”.

この変換処理によって得られた三角形や矩形の各頂点の位置、各頂点や三角形内の色値、パラメトリック曲線の制御点等をベクトルデータとしてファイル形式又はデータベース形式で保存しておき、次処理において当該ベクトルデータを利用して画像を表示することにより、元のビットマップ画像のオブジェクトを近似的に生成(再現)可能となる。この生成処理により、パラメトリック曲面を用いたベクトルデータで表された画像が表示されるため、その画像内のオブジェクトの局所領域に対して所期する編集(オブジェクトの選択、選択領域の拡大や縮小、頂点移動等の画像処理)が可能となる。   The position of each vertex of the triangle or rectangle obtained by this conversion processing, the color value in each vertex or triangle, the control point of the parametric curve, etc. are saved as vector data in a file format or database format, and in the next processing By displaying an image using vector data, an object of the original bitmap image can be generated (reproduced) approximately. By this generation process, an image represented by vector data using a parametric curved surface is displayed. Therefore, the desired editing for the local area of the object in the image (object selection, enlargement or reduction of the selected area, Image processing such as vertex movement).

なお、曲面パッチの色を補間する際は、曲面パッチを構成する頂点や適当にサンプリングされた点等の位置に対応するビットマップ画像上の画素位置の色情報を取得し、サンプリングされた点の位置以外の点の色値を何らかの数式を用いて近似的に計算することが一般的である。数式を用いて曲面パッチ内部の色値を計算することにより、オブジェクトのサイズが拡大された場合であっても、拡大後のオブジェクトの色を正確に表現でき、画質の劣化を防止することができる。   In addition, when interpolating the color of the curved surface patch, the color information of the pixel position on the bitmap image corresponding to the position of the vertex constituting the curved surface patch or the appropriately sampled point is acquired, and the sampled point In general, the color values of points other than the position are approximately calculated using some mathematical formula. By calculating the color values inside the curved surface patch using mathematical formulas, even when the size of the object is enlarged, the color of the enlarged object can be expressed accurately, and deterioration in image quality can be prevented. .

すなわち、曲面パッチ内部の色値としてビットマップ画像の各画素が有する色値をそのままデータとして保持する場合には、拡大時において輪郭部分に階段状の境界や色変化が現れてしまい画質が損なわれてしまうが、領域の幾何形状や領域内部の色情報を数式で計算可能なベクトル形式のデータ(ベクトルデータ)に変換しておくことにより、拡大した場合であってもなめらかな輪郭や色変化を表現することができる。   In other words, when the color value of each pixel of the bitmap image is retained as data as the color value inside the curved surface patch, a stepped boundary or color change appears in the contour portion during enlargement, and the image quality is impaired. However, by converting the geometrical shape of the area and the color information inside the area into vector format data (vector data) that can be calculated using mathematical formulas, smooth contours and color changes can be achieved even when enlarged. Can be expressed.

なお、曲面パッチは数学的処理が容易なことから、辺が次数3のパラメトリック曲線で表される双3次パッチが用いられることが多い。通常、この双3次パッチは、3次元的な曲面形状を表すために用いられるが、非特許文献1、2では、ビットマップ画像をオブジェクトの輪郭に沿って曲面パッチの形状を形成する処理や、曲面パッチ内部の色値の計算処理に用いている。   Since the curved surface patch is easy to mathematically process, a bicubic patch whose side is represented by a parametric curve of degree 3 is often used. Normally, this bicubic patch is used to represent a three-dimensional curved surface shape. However, in Non-Patent Documents 1 and 2, a process of forming a curved patch shape along a contour of an object from a bitmap image, This is used to calculate the color value inside the curved surface patch.

例えば、非特許文献1、2では、曲面パッチの辺が3次のBezier曲線又は当該曲線と等価な曲線が用いられている。また、非特許文献1では、画素位置(x,y)及び当該画素位置の色値hを変数としたときに、(x,y,h)をFergusonパッチで表し、非特許文献2では、曲面パッチの形状(x,y)をBezier曲線で表し、画素位置(x,y)での色値を薄板スプライン補間手法を用いて計算している。   For example, in Non-Patent Documents 1 and 2, the side of the curved patch uses a cubic Bezier curve or a curve equivalent to the curve. In Non-Patent Document 1, (x, y, h) is represented by a Ferguson patch when the pixel position (x, y) and the color value h of the pixel position are variables. The patch shape (x, y) is represented by a Bezier curve, and the color value at the pixel position (x, y) is calculated using a thin plate spline interpolation method.

パラメトリック曲線は、一般に、画面の横軸方向の位置のパラメータをu(0≦u≦1の実数)とし、縦軸方向の位置のパラメータをv(0≦v≦1の実数)として、(u,v)で定まる点での位置ベクトルを(x,y,h)とするベクトルデータで表現される。なお、x,y,hは、それぞれ、当該点における局所座標系のx軸,y軸,h軸のベクトル成分であり、(x,y)は曲面パッチ上の点の位置を意味し、hは(x,y)での色値を意味する。   In general, a parametric curve has a parameter of the position in the horizontal axis direction of the screen as u (real number of 0 ≦ u ≦ 1) and a parameter of the position in the vertical axis direction as v (real number of 0 ≦ v ≦ 1) (u , V) is represented by vector data having a position vector at a point determined by (x, y, h). Note that x, y, and h are vector components of the local coordinate system of the x-axis, y-axis, and h-axis, respectively, and (x, y) means the position of the point on the curved surface patch, h Means the color value at (x, y).

そして、上記パラメータは、u=(u,v)や、添え字を付したu=(u,v)等で表現され、x,y,hは、その表現形式を用いて以下の式(1)〜式(3)から計算される。 Then, the parameter, u = (u, v) and, u i = (u i, v i) marked with subscripts expressed in such, x, y, h is follows by using the expression form It calculates from Formula (1)-Formula (3).

=x(u,v) ・・・式(1)
=y(u,v) ・・・式(2)
=h(u,v) ・・・式(3)
これら数式上はパラメータu,vに該当する位置を先に計算するように思われるが、実際にベクトルデータを画像としてレンダリング(色値の計算等)して表示する際には、曲面パッチ上の画素位置(x,y)を指定し、その位置でのパラメータ(u,v)の値を計算した上で、算出された(u,v)に対応する色値h(u,v)を計算することになる。
x i = x (u i , v i ) (1)
y i = y (u i , v i ) (2)
h i = h (u i , v i ) (3)
Although it seems that the positions corresponding to the parameters u and v are calculated first on these equations, when the vector data is actually rendered as an image (color value calculation, etc.) and displayed, After specifying the pixel position (x, y) and calculating the value of the parameter (u, v) at that position, the color value h (u, v) corresponding to the calculated (u, v) is calculated. Will do.

このため、非特許文献1、2に開示されたようなベクトルデータを用いて画面を表示する方法は、同じサイズ(解像度)を持つビットマップ画像の表示に比べて計算コストが多大になる。   For this reason, the method of displaying a screen using vector data as disclosed in Non-Patent Documents 1 and 2 is computationally expensive compared to displaying a bitmap image having the same size (resolution).

そこで、オブジェクトに対して近似的にあてはめられた複数の曲面パッチに識別子をそれぞれ付与し、編集する単位を指定されたオブジェクトに限定することにより、計算コストの低減を図る方法が用いられている。   In view of this, a method is used in which an identifier is assigned to each of a plurality of curved patches approximately applied to an object, and the unit for editing is limited to the specified object, thereby reducing the calculation cost.

Yu-Kun Lai、外2名、“Automatic and Topology-Preserving Gradient Mesh Generation for Image Vectorization”、ACM Transactions on Graphics、Vol.28、No.3(SIGGRAPH 2009)、2009年8月、Article 85:1-8Yu-Kun Lai, two others, “Automatic and Topology-Preserving Gradient Mesh Generation for Image Vectorization”, ACM Transactions on Graphics, Vol.28, No.3 (SIGGRAPH 2009), August 2009, Article 85: 1- 8 Tian Xia、外2名、“Patch-based Image Vectorization with Automatic Curvilinear Feature Alignment”、ACM Transactions on Graphics、Vol.28、No.5(SIGGRAPH Asia 2009)、2009年12月、Article 115:1-10Tian Xia, two others, “Patch-based Image Vectorization with Automatic Curvilinear Feature Alignment”, ACM Transactions on Graphics, Vol.28, No.5 (SIGGRAPH Asia 2009), December 2009, Article 115: 1-10

しかしながら、利用される曲面パッチは曲線(パラメトリック曲線)により形成されるパラメトリック曲面により構成されているため、画像内のオブジェクトを変形するような場合には、曲面パッチの形状や曲面パッチ内部の色値の再計算に多くの処理時間を必要とし、変形後の画像の表示速度が遅いという問題があった。   However, since the curved surface patch used is composed of a parametric curved surface formed by a curve (parametric curve), the shape of the curved surface patch and the color value inside the curved surface patch are used when the object in the image is deformed. The recalculation requires a lot of processing time, and there is a problem that the display speed of the image after the deformation is slow.

本発明は、上記を鑑みてなされたものであり、画質をできるだけ損なうことなく高速にベクトル化された画像を表示し編集することを課題とする。   The present invention has been made in view of the above, and an object of the present invention is to display and edit a vectorized image at high speed without losing image quality as much as possible.

請求項1に記載の画像処理装置は、ビットマップ画像内のオブジェクトをパラメトリック曲面で近似した矩形又は三角形の曲面パッチのベクトルデータを記憶しておく記憶手段と、前記記憶手段からベクトルデータを読み出して、前記曲面パッチを構成する頂点を線分で結んだプリミティブパッチを生成する生成手段と、前記曲面パッチの2つの頂点を結ぶ曲線エッジを分割し、分割された曲線エッジ上の分割点と当該曲面パッチの他の頂点とを結ぶ線分で前記プリミティブパッチを分割する分割手段と、前記ビットマップ画像の各画素に対応する配列データを生成し、分割されたプリミティブパッチの内部領域に対応する位置にプリミティブパッチを識別する識別子を格納する格納手段と、指定された画素位置に対応する識別子を前記配列データから取得し、取得された前記プリミティブパッチの識別子を用いて要求に応じた処理を行う処理手段と、を有することを特徴とする。 The image processing apparatus according to claim 1, storage means for storing vector data of a rectangular or triangular curved surface patch obtained by approximating an object in a bitmap image with a parametric curved surface, and reading the vector data from the storage means. Generating means for generating a primitive patch connecting the vertices constituting the curved surface patch with line segments; dividing a curved edge connecting two vertices of the curved surface patch; dividing points on the divided curved edge and the curved surface; Dividing means for dividing the primitive patch by a line segment connecting to other vertices of the patch, array data corresponding to each pixel of the bitmap image is generated, and at a position corresponding to the inner area of the divided primitive patch Storage means for storing an identifier for identifying a primitive patch, and an identifier corresponding to a designated pixel position in the array Obtained from over data, characterized by having a process and processing means for executing in response to a request using the identifier of the acquired primitive patch.

本発明によれば、辺がパラメトリック曲線で構成される曲面パッチではなく、直線境界を有するプリミティブパッチの識別子を用いて処理するため、レンダリングに係る計算コストを低減し、画質をできるだけ損なうことなく高速にベクトル化された画像を表示し編集することができる。   According to the present invention, processing is performed using an identifier of a primitive patch having a straight boundary instead of a curved surface patch whose side is composed of a parametric curve, so that the calculation cost related to rendering is reduced and high speed is achieved without losing image quality as much as possible. The vectorized image can be displayed and edited.

請求項2に記載の画像処理装置は、請求項1に記載の画像処理装置において、頂点移動後のプリミティブパッチに対応する画素の色値を、当該頂点移動により更新されたプリミティブの頂点及びプリミティブ画像内のサンプリング点の位置情報と、当該頂点及び当該サンプリング点の更新前の色値とを用いて決定する決定手段を更に有することを特徴とする。 The image processing device according to claim 2 is the image processing device according to claim 1, wherein the color value of the pixel corresponding to the primitive patch after the vertex movement is changed to the vertex of the primitive and the primitive image updated by the vertex movement. And determining means for determining the position using the position information of the sampling point, the vertex and the color value before the sampling point is updated.

請求項3に記載の画像処理方法は、コンピュータ行う画像処理方法において、記憶手段が、ビットマップ画像内のオブジェクトをパラメトリック曲面で近似した矩形又は三角形の曲面パッチのベクトルデータを記憶手段に記憶しておくステップと、生成手段が、前記記憶手段からベクトルデータを読み出して、前記曲面パッチを構成する頂点を線分で結んだプリミティブパッチを生成するステップと、分割手段が、前記曲面パッチの2つの頂点を結ぶ曲線エッジを分割し、分割された曲線エッジ上の分割点と当該曲面パッチの他の頂点とを結ぶ線分で前記プリミティブパッチを分割するステップと、格納手段が、前記ビットマップ画像の各画素に対応する配列データを生成し、分割されたプリミティブパッチの内部領域に対応する位置にプリミティブパッチを識別する識別子を格納するステップと、処理手段が、指定された画素位置に対応する識別子を前記配列データから取得し、取得された前記プリミティブパッチの識別子を用いて要求に応じた処理を行うステップと、を有することを特徴とする。 The image processing method according to claim 3 is the image processing method performed in a computer, the storage unit may store the object in the bitmap image in the storage unit vector data surface patch of rectangular or triangular is approximated by a parametric surface A step of generating vector data from the storage unit, generating a primitive patch connecting vertices constituting the curved patch with line segments, and a dividing unit including two of the curved patch dividing the curved edges connecting the vertices, dividing the primitive patch line connecting the other vertexes of division points and the surface patch on the divided curved edges, the storage unit, of said bitmap image Array data corresponding to each pixel is generated, and the data is plotted at a position corresponding to the inner area of the divided primitive patch. And storing an identifier for identifying the Mitibupatchi, processing means, and obtains an identifier corresponding to the designated pixel positions from the sequence data, in response to a request by using the identifier of the acquired said primitive patching And performing .

本発明によれば、辺がパラメトリック曲線で構成される曲面パッチではなく、直線境界を有するプリミティブパッチの識別子を用いて処理するため、レンダリングに係る計算コストを低減し、画質をできるだけ損なうことなく高速にベクトル化された画像を表示し編集することができる。   According to the present invention, processing is performed using an identifier of a primitive patch having a straight boundary instead of a curved surface patch whose side is composed of a parametric curve, so that the calculation cost related to rendering is reduced and high speed is achieved without losing image quality as much as possible. The vectorized image can be displayed and edited.

請求項4に記載の画像処理方法は、請求項3に記載の画像処理方法において、決定手段が、頂点移動後のプリミティブパッチに対応する画素の色値を、当該頂点移動により更新されたプリミティブの頂点及びプリミティブ画像内のサンプリング点の位置情報と、当該頂点及び当該サンプリング点の更新前の色値とを用いて決定するステップを更に有することを特徴とする。 An image processing method according to a fourth aspect is the image processing method according to the third aspect, wherein the determining means sets the color value of the pixel corresponding to the primitive patch after the vertex movement of the primitive updated by the vertex movement. The method further comprises the step of determining using the position information of the vertices and the sampling points in the primitive image and the color values before the vertices and the sampling points are updated.

請求項5に記載の画像処理プログラムは、請求項3又は4に記載の画像処理方法における各ステップをコンピュータに実行させることを特徴とする。   According to a fifth aspect of the present invention, there is provided an image processing program that causes a computer to execute each step in the image processing method according to the third or fourth aspect.

本発明によれば、画質をできるだけ損なうことなく高速にベクトル化された画像を表示し編集することができる。   According to the present invention, it is possible to display and edit a vectorized image at high speed without losing image quality as much as possible.

画像処理装置の機能ブロック構成を示す図である。It is a figure which shows the functional block structure of an image processing apparatus. 画像処理装置の動作フローを示す図である。It is a figure which shows the operation | movement flow of an image processing apparatus. ビットマップ画像の近似例及びラベルデータ例を示す図である。It is a figure which shows the example of approximation of a bitmap image, and the example of label data. ベクトルデータ例を示す図である。It is a figure which shows the vector data example. ベクトルデータ例を示す図である。It is a figure which shows the vector data example. 曲線エッジを線分で近似する例を示す図である。It is a figure which shows the example which approximates a curve edge with a line segment. 曲面パッチとパラメトリックパッチとの相関関係を示す図である。It is a figure which shows the correlation of a curved surface patch and a parametric patch. 曲線エッジの分割例を示す図である。It is a figure which shows the example of a division | segmentation of a curve edge. 曲線エッジとプリミティブパッチの分割例を示す図である。It is a figure which shows the example of a division | segmentation of a curve edge and a primitive patch. プリミティブパッチの頂点移動例を示す図である。It is a figure which shows the vertex movement example of a primitive patch. 頂点移動後のプリミティブパッチの曲線、頂点、制御点の修正例を示す図である。It is a figure which shows the correction example of the curve of the primitive patch after moving a vertex, a vertex, and a control point. 頂点移動後の分割されたプリミティブパッチの曲線、頂点、制御点の修正例を示す図である。It is a figure which shows the example of correction of the curve, vertex, and control point of the divided | segmented primitive patch after vertex movement. パラメトリック曲面での近似例を示す図である。It is a figure which shows the example of an approximation in a parametric curved surface.

以下、三角形の曲面パッチ及び三角形のプリミティブパッチ(後述)を一例に用いて、本発明を実施する一実施の形態について説明する。但し、本発明は多くの異なる様態で実施することが可能であり、本実施の形態の記載内容に限定して解釈すべきではない。   Hereinafter, an embodiment for carrying out the present invention will be described using a triangular curved patch and a triangular primitive patch (described later) as an example. However, the present invention can be implemented in many different modes and should not be construed as being limited to the description of the present embodiment.

すなわち、矩形の曲面パッチや矩形のプリミティブパッチを用いた場合であっても同様の作用効果を得ることができる。以下、三角形又は矩形の曲面パッチを単に曲面パッチといい、三角形又は矩形のプリミティブパッチを単にプリミティブパッチという。   That is, even when a rectangular curved surface patch or a rectangular primitive patch is used, the same effect can be obtained. Hereinafter, a triangular or rectangular curved patch is simply referred to as a curved patch, and a triangular or rectangular primitive patch is simply referred to as a primitive patch.

また、曲面パッチの一辺を構成しているパラメトリック曲線は、Bezier曲線(ベジェ曲線)や有理Bezier曲線に代表されるが、その一辺を曲線ならしめる定理については何ら制限されない。   The parametric curve constituting one side of the curved patch is represented by a Bezier curve (Bezier curve) or a rational Bezier curve, but the theorem for making the one side a curve is not limited at all.

図1は、本実施の形態に係る画像処理装置の機能ブロック構成を示す図である。この画像処理装置は、データ記憶部11と、ベクトルデータ読込/表示部12と、識別子付与部13と、第1ラベルデータ生成/記憶部14と、識別子取得部15と、画像処理部16と、ベクトルデータ更新部17と、プリミティブパッチ生成部18と、曲線エッジ/線分エッジ評価部19と、パラメトリック曲線分割部20と、プリミティブ画像生成/表示部21と、第2ラベルデータ生成/記憶部22と、頂点移動受入部23と、プリミティブ画像更新/表示部24と、第2ラベルデータ更新/記憶部25とで構成されている。   FIG. 1 is a diagram showing a functional block configuration of the image processing apparatus according to the present embodiment. The image processing apparatus includes a data storage unit 11, a vector data reading / display unit 12, an identifier assigning unit 13, a first label data generation / storage unit 14, an identifier acquisition unit 15, an image processing unit 16, Vector data update unit 17, primitive patch generation unit 18, curve edge / line segment edge evaluation unit 19, parametric curve division unit 20, primitive image generation / display unit 21, and second label data generation / storage unit 22 A vertex movement receiving unit 23, a primitive image update / display unit 24, and a second label data update / storage unit 25.

データ記憶部11は、元のビットマップ画像内のオブジェクトをパラメトリック曲面で近似した曲面パッチを構成するベクトルデータを記憶しておく機能を有している。   The data storage unit 11 has a function of storing vector data constituting a curved surface patch obtained by approximating an object in the original bitmap image with a parametric curved surface.

ベクトルデータ読込/表示部12は、データ記憶部11のベクトルデータを読み込んで、そのベクトルデータを用いて曲面パッチを生成し、生成された曲面パッチに基づいてビットマップ画像(ラスタ画像)を生成して、ディスプレイに表示する機能を有している。すなわち、元のビットマップ画像に基づいて数値化・関数化されたベクトルデータから元のビットマップ画像を近似的に再現する機能を有している。   The vector data reading / display unit 12 reads the vector data in the data storage unit 11, generates a curved surface patch using the vector data, and generates a bitmap image (raster image) based on the generated curved surface patch. And has a function of displaying on the display. That is, it has a function of approximating the original bitmap image from the vector data digitized / functioned based on the original bitmap image.

識別子付与部13は、ベクトルデータ読込/表示部12でのビットマップ画像生成中に生成された曲面パッチや当該曲面パッチを構成している辺(以下、曲線エッジ)に対して、各曲面パッチや各曲線エッジをそれぞれ識別する識別子を付与する機能を有している。   The identifier assigning unit 13 applies each curved surface patch to the curved surface patch generated during the bitmap image generation in the vector data reading / displaying unit 12 and the sides constituting the curved surface patch (hereinafter, curved edges). It has a function of assigning an identifier for identifying each curved edge.

第1ラベルデータ生成/記憶部14は、元のビットマップ画像と同サイズであって、そのビットマップ画像の各画素にそれぞれ対応するデータ領域を有する2次元配列データ(以下、第1ラベルデータ)を生成し、識別子付与部13により付与された曲面パッチの識別子を曲面パッチの内部領域に対応する各位置にそれぞれ記憶(格納)する機能を有している。   The first label data generation / storage unit 14 is two-dimensional array data (hereinafter referred to as first label data) having the same size as the original bitmap image and having a data area corresponding to each pixel of the bitmap image. And the identifier of the curved surface patch assigned by the identifier assigning unit 13 is stored (stored) in each position corresponding to the internal area of the curved patch.

識別子取得部15は、ユーザによる編集処理要求を受け入れて、その要求により指定された画素範囲に対応するオブジェクトのパッチの識別子を第1ラベルデータ又は第2ラベルデータ(後述)から取得する機能を有している。   The identifier acquisition unit 15 has a function of accepting an edit processing request by a user and acquiring an identifier of an object patch corresponding to the pixel range designated by the request from first label data or second label data (described later). doing.

画像処理部16は、識別子取得部15で取得したパッチの識別子を用いて要求に応じた所定の処理(オブジェクトの選択、選択領域の拡大や縮小、頂点移動等の画像処理)を行う機能を有している。   The image processing unit 16 has a function of performing predetermined processing (image processing such as object selection, enlargement / reduction of a selection area, vertex movement, etc.) according to a request using the patch identifier acquired by the identifier acquisition unit 15. doing.

ベクトルデータ更新部17は、画像処理部16の処理により修正等されたベクトルデータを用いて、データ記憶部11のベクトルデータを更新(修正や追記等)する機能を有している。   The vector data update unit 17 has a function of updating (correcting, adding, etc.) the vector data in the data storage unit 11 using the vector data corrected by the processing of the image processing unit 16.

プリミティブパッチ生成部18は、曲面パッチを構成する頂点を線分で結んだプリミティブパッチを生成する機能を有している。   The primitive patch generation unit 18 has a function of generating a primitive patch in which vertices constituting a curved surface patch are connected by line segments.

曲線エッジ/線分エッジ評価部19は、曲面パッチの2つの頂点を結ぶ曲線エッジと、その曲線エッジに対応するプリミティブパッチの辺(以下、線分エッジ)との距離の差(エッジ成分長の差)を評価する機能を有している。   The curved edge / line segment edge evaluation unit 19 determines the difference in the distance (the edge component length) between the curved edge connecting two vertices of the curved patch and the side of the primitive patch corresponding to the curved edge (hereinafter, the line segment edge). It has a function to evaluate (difference).

パラメトリック曲線分割部20は、曲線エッジ/線分エッジ評価部19での距離の差の評価に基づいて曲面パッチの曲線エッジを分割し、分割された曲線エッジ上の分割点と当該曲面パッチの他の頂点とを結ぶ線分でプリミティブパッチを分割する機能を有している。   The parametric curve dividing unit 20 divides the curved edge of the curved surface patch based on the evaluation of the difference in distance by the curved edge / line segment edge evaluating unit 19, and adds the dividing points on the divided curved edge and the curved surface patch. It has a function of dividing a primitive patch by a line segment connecting the vertices.

プリミティブ画像生成/表示部21は、ベクトルデータ読込/表示部12で生成された曲面パッチに基づくビットマップ画像からプリミティブパッチ(分割されたプリミティブパッチを含む)の内部領域に対応する画素位置の色値を取得し、プリミティブパッチに基づくプリミティブ画像を生成して、ディスプレイに表示する機能を有している。   The primitive image generation / display unit 21 obtains the color value of the pixel position corresponding to the internal region of the primitive patch (including the divided primitive patch) from the bitmap image based on the curved surface patch generated by the vector data reading / display unit 12. And a primitive image based on the primitive patch is generated and displayed on the display.

第2ラベルデータ生成/記憶部22は、第1ラベルデータ生成/記憶部14と同様な領域を有する第2ラベルデータを生成し、プリミティブパッチ(分割されたプリミティブパッチを含む)の内部領域に対応する位置にプリミティブパッチを識別する識別子を記憶(格納)する機能を有している。   The second label data generation / storage unit 22 generates second label data having the same area as the first label data generation / storage unit 14 and corresponds to the internal area of the primitive patch (including the divided primitive patch). It has a function of storing (storing) an identifier for identifying a primitive patch at a position to be stored.

頂点移動受入部23は、プリミティブ画像上において移動対象のプリミティブパッチの頂点の指定とその移動量を受け入れる機能を有している。   The vertex movement accepting unit 23 has a function of accepting designation of a vertex of a primitive patch to be moved on the primitive image and a movement amount thereof.

プリミティブ画像更新/表示部24は、プリミティブパッチの頂点移動後の位置や移動量に基づいてプリミティブ画像を更新し、ディスプレイに表示する機能を有している。   The primitive image update / display unit 24 has a function of updating the primitive image based on the position and amount of movement of the primitive patch after the vertex movement and displaying the primitive image on the display.

第2ラベルデータ更新/記憶部25は、プリミティブ画像の更新に伴って第2ラベルデータ内のプリミティブパッチの識別子を更新(修正等)する機能を有している。   The second label data update / storage unit 25 has a function of updating (correcting) the identifier of the primitive patch in the second label data in accordance with the update of the primitive image.

次に、図2を参照しながら、本実施の形態に係る画像処理装置の動作について説明する。   Next, the operation of the image processing apparatus according to the present embodiment will be described with reference to FIG.

最初に、曲面パッチに基づく処理方法について説明する。なお、本発明は、後述する線分によるプリミティブパッチに基づく処理方法を主な特徴とするが、当該処理方法は曲面パッチに基づいて生成された画像を利用することから、曲面パッチの処理方法を先に説明する。   First, a processing method based on a curved surface patch will be described. The main feature of the present invention is a processing method based on primitive patches based on line segments, which will be described later. Since the processing method uses an image generated based on a curved surface patch, the processing method of the curved surface patch is used. I will explain it first.

まず、ベクトルデータ読込/表示部12が、データ記憶部11に記憶されているベクトルデータを読み込み、そのベクトデータを用いて曲面パッチの形状を生成し曲面パッチ内部の色値を補間することにより、指定された画像サイズでのビットマップ画像を生成する(S101、S103)。生成されたビットマップ画像例については図3(a)を参照されたい。   First, the vector data reading / display unit 12 reads the vector data stored in the data storage unit 11, generates the shape of the curved surface patch using the vector data, and interpolates the color value inside the curved surface patch. A bitmap image with a specified image size is generated (S101, S103). See FIG. 3A for an example of the generated bitmap image.

なお、ベクトルデータを用いビットマップ画像を生成する方法については、非特許文献2に記載されているため、その説明は省略する。   Note that since a method for generating a bitmap image using vector data is described in Non-Patent Document 2, description thereof is omitted.

また、画像サイズが指定される理由については、ベクトルデータは生成されるビットマップ画像のサイズに依存しないため、画像を生成するにあたっては画像のサイズを必要とするからである。一般に、横方向がW(1以上の自然数)の画素、縦方向がH(1以上の自然数)の画素とされる。   The reason why the image size is specified is that the vector data does not depend on the size of the bitmap image to be generated, and therefore the image size is required to generate the image. In general, the horizontal direction is a pixel of W (a natural number of 1 or more) and the vertical direction is a pixel of H (a natural number of 1 or more).

ここで、ベクトルデータについて説明する。ここでのベクトルデータとは、曲面パッチを構築する関数を決定するための条件となるデータであり、例えば、図4に示すように、曲面パッチを構成する頂点のID、頂点の座標位置、頂点の色値等からなるデータテーブルや、曲面パッチの曲線エッジを制御する制御点、色補間する際に利用するサンプリング点等からなるデータテーブルにより構成されている。なお、ベクトルデータの書式や形式は任意に設定可能であり、その方式については何ら制限はない。   Here, the vector data will be described. The vector data here is data that is a condition for determining a function for constructing a curved surface patch. For example, as shown in FIG. 4, the vertex IDs, vertex coordinate positions, and vertexes constituting the curved surface patch are used. A data table composed of color values, etc., a data table composed of control points for controlling the curved edges of curved patches, sampling points used for color interpolation, and the like. The format and format of the vector data can be arbitrarily set, and there is no restriction on the method.

図2に戻り、ビットマップ画像を生成する際において、識別子付与部13が、生成された複数の曲面パッチや各曲面パッチの複数の曲線エッジに対して識別子をそれぞれ付与する(S102)。   Returning to FIG. 2, when generating a bitmap image, the identifier assigning unit 13 assigns identifiers to the plurality of generated curved patches and the plurality of curved edges of each curved patch (S102).

なお、このように付与される識別子としては、適宜採番した値を割り当てても良いし、ベクトルデータ内に識別子が含まれている場合には当該識別子を利用するようにしても良い。   In addition, as an identifier given in this way, a value obtained as appropriate may be assigned, or when an identifier is included in vector data, the identifier may be used.

次いで、ユーザによる編集処理がパッチ選択のみの場合には、第1ラベルデータ生成/記憶部14が、元のビットマップ画像に対応する第1ラベルデータを生成し、識別子付与部13によって付与された曲面パッチの識別子を当該曲面パッチの内部領域に対応する各位置にそれぞれ記憶する(S104、S105)。生成された第1ラベルデータ例については図3(b)を参照されたい。   Next, when the editing process by the user is only patch selection, the first label data generation / storage unit 14 generates first label data corresponding to the original bitmap image and is given by the identifier giving unit 13 The identifier of the curved patch is stored in each position corresponding to the internal area of the curved patch (S104, S105). Refer to FIG. 3B for an example of the generated first label data.

具体的には、各曲面パッチが占有する画像に対応する位置(i,j)(0≦i<W,0≦j<H)と当該位置での色値がそれぞれ計算されるので、例えばTの識別子が付与された曲面パッチについては、計算された全ての位置(i,j)に対してTを代入することにより第1ラベルデータを生成する。   Specifically, the position (i, j) (0 ≦ i <W, 0 ≦ j <H) corresponding to the image occupied by each curved surface patch and the color value at that position are calculated. The first label data is generated by substituting T for all the calculated positions (i, j) for the curved surface patch to which the identifier is assigned.

次いで、ベクトルデータ読込/表示部12が、S103で生成したビットマップ画像をディスプレイ上に表示する(S106)。   Next, the vector data reading / display unit 12 displays the bitmap image generated in S103 on the display (S106).

その後、識別子取得部15が、ディスプレイに表示されたビットマップ画像に対する曲面パッチの選択処理を受け入れ、その選択により指定された画素範囲に対応する曲面パッチの識別子をS105で生成した第1ラベルデータから取得して、画像処理部16が、その取得した曲面パッチの識別子を用いて処理を行う(S107〜S109)。   Thereafter, the identifier acquisition unit 15 accepts a curved patch selection process for the bitmap image displayed on the display, and the identifier of the curved patch corresponding to the pixel range specified by the selection is generated from the first label data generated in S105. The acquired image processing unit 16 performs processing using the acquired curved surface patch identifier (S107 to S109).

S108において曲面パッチの識別子を取得することにより、例えば複数の曲面パッチをまとめて一つのオブジェクトとして扱い、何らかのタグ情報を付与することができる。読み込んだベクトルデータに対して当該タグ情報を付与することにより、新たな情報をベクトルデータに追加することが可能となる。   By acquiring the identifier of the curved surface patch in S108, for example, a plurality of curved surface patches can be collectively handled as one object, and some tag information can be given. By adding the tag information to the read vector data, new information can be added to the vector data.

例えば、(タグID,パッチ1のID,パッチ2のID,パッチ3のID,…)のようなリストをベクトルデータに付与することにより、当該タグIDを有するパッチIDを一度に取得することが可能となる。   For example, by adding a list such as (tag ID, patch 1 ID, patch 2 ID, patch 3 ID,...) To the vector data, a patch ID having the tag ID can be acquired at once. It becomes possible.

最後に、ベクトルデータ更新部17が、S109により更新されたベクトルデータを用いてデータ記憶部11のベクトルデータを更新する(S110)。   Finally, the vector data update unit 17 updates the vector data in the data storage unit 11 using the vector data updated in S109 (S110).

なお、S107〜S110は、曲面パッチの選択処理が終了するまで繰り返される(S111)。   Note that S107 to S110 are repeated until the curved patch selection processing is completed (S111).

また、選択した曲面パッチを分かり易く示すために、ビットマップ画像上で選択された曲面パッチの色を変更するようにしてもよい。例えば、第1ラベルデータ上で同一識別子を有する位置に対応する画素位置の色値を同一色にすることにより実現する。   Further, in order to show the selected curved surface patch in an easy-to-understand manner, the color of the selected curved surface patch on the bitmap image may be changed. For example, this is realized by setting the color value of the pixel position corresponding to the position having the same identifier on the first label data to the same color.

以上が曲面パッチに基づく基本的な処理方法である。パッチ選択等の識別子を扱う処理のみであればこれまで説明した処理方法でも良いが、ビットマップ画像内のオブジェクトを変形するような場合、すなわち、曲面パッチを構成する頂点を移動する場合には、移動後の曲面パッチの形状や内部の色値を再計算するのに多くの計算コストを必要とする。   The above is the basic processing method based on the curved surface patch. The processing method described so far may be used as long as it is only processing that handles identifiers such as patch selection, but in the case of deforming an object in a bitmap image, that is, when moving a vertex constituting a curved surface patch, A lot of calculation costs are required to recalculate the shape of the curved patch after movement and the internal color values.

ゆえに、その場合には、一般に高速に処理できる線分エッジを有するプリミティブ(ポリゴン:線分の辺を持つ三角形や矩形等の多角形)状のプリミティブパッチを用いて処理を行う。以下、プリミティブパッチに基づく処理方法について、引き続き図2を参照しながら説明する。   Therefore, in this case, processing is performed using a primitive patch in the form of a primitive (polygon: a triangle such as a triangle having a line segment side or a rectangle) having a line segment edge that can generally be processed at high speed. Hereinafter, the processing method based on the primitive patch will be described with reference to FIG.

S104での判断処理において、ユーザによる編集処理がパッチ選択のみでない場合には、その選択された曲面パッチの曲線エッジにおいて未だ処理されていない曲線エッジがあるかどうかを判断し、未処理の曲線エッジがある場合には、ベクトルデータ読込/表示部12及び識別子付与部13が、データ記憶部11のベクトルデータを用いて、曲面パッチや曲線エッジに関する情報リストを生成する(S104、S201〜S202)。生成されたリスト例については図5を参照されたい。このようなリストを予めデータ記憶部11に記憶しておくようにしてもよい。   In the determination process in S104, if the editing process by the user is not only the patch selection, it is determined whether there is a curve edge that has not yet been processed among the curve edges of the selected curved patch, and an unprocessed curve edge is determined. If there is, the vector data reading / display unit 12 and the identifier assigning unit 13 use the vector data in the data storage unit 11 to generate an information list regarding curved patches and curved edges (S104, S201 to S202). See FIG. 5 for an example of the generated list. Such a list may be stored in the data storage unit 11 in advance.

なお、図5に示す親パッチIDとは、後述の分割時に新たに生成されたパッチがどのパッチに属していたかを示す識別子である。また、親エッジIDとは、同様に、後述する分割時に新たに生成されたエッジがどのエッジに属していたかを示す識別子である。   The parent patch ID shown in FIG. 5 is an identifier indicating to which patch a patch newly generated at the time of division described later belongs. Similarly, the parent edge ID is an identifier indicating to which edge the edge newly generated at the time of division described later belongs.

次いで、図2に戻り、プリミティブパッチ生成部18が、S202で生成された各リスト内のベクトルデータを用いて、曲面パッチの頂点を線分で結んだプリミティブパッチを生成する(S203)。   Next, returning to FIG. 2, the primitive patch generation unit 18 generates a primitive patch in which the vertexes of the curved surface patch are connected by line segments using the vector data in each list generated in S202 (S203).

ここで、パラメトリック曲面の曲面パッチから線分のプリミティブパッチを生成する手法としては、図6(b)に示すような輪郭をパラメトリック曲線とし内部のみを線分で結んで多角形を生成する方法や、図6(c)に示すような輪郭をも線分で結んで多角形を生成する方法が挙げられる。ラベルデータの生成についても当該多角形を基準にして識別子を記憶することにより、いずれの方法であっても、頂点を移動した場合でも色値等の再計算コストを低減することができる。   Here, as a method of generating a primitive patch of a line segment from a curved patch of a parametric curved surface, a method of generating a polygon by connecting a contour as a parametric curve and connecting only the inside with a line segment as shown in FIG. A method of generating a polygon by connecting the contours as shown in FIG. For generating the label data, the identifier is stored with reference to the polygon, so that the recalculation cost such as the color value can be reduced even if the vertex is moved by any method.

ここで、図7に示すように、頂点の位置が同じであっても、元のベクトルデータが表している曲面パッチとプリミティブパッチとでは指定された画素位置の識別子が異なる場合がある。   Here, as shown in FIG. 7, even if the vertex positions are the same, the identifier of the designated pixel position may be different between the curved surface patch and the primitive patch represented by the original vector data.

そこで、図2に戻り、曲線エッジ/線分エッジ評価部19が、曲面パッチを構成する曲線エッジの曲線距離と、その曲線エッジに対応するプリミティブパッチの線分エッジの直線距離との差を計算し、その距離の差が所定の閾値よりも大きい場合には、パラメトリック曲線分割部20が、その曲線エッジを中点で分割する(S204〜S206)。   Returning to FIG. 2, the curved edge / line segment edge evaluation unit 19 calculates the difference between the curved distance of the curved edge constituting the curved surface patch and the linear distance of the line segment edge of the primitive patch corresponding to the curved edge. If the difference in distance is greater than the predetermined threshold, the parametric curve dividing unit 20 divides the curve edge at the midpoint (S204 to S206).

ここで、図8を参照しながら、距離の差の評価方法について説明する。例えば、2点間のチェス盤距離により評価することができる。2つの頂点v1(x1,y1),v2(x2,y2)のチェス盤距離dは以下の式(4)のように定義できる。   Here, a distance difference evaluation method will be described with reference to FIG. For example, it can be evaluated by a chessboard distance between two points. The chessboard distance d between the two vertices v1 (x1, y1) and v2 (x2, y2) can be defined as the following equation (4).

d(v1,v2)=max(|x1−x2|,|y1−y2|) ・・・式(4)
そして、曲線を構成する2つの頂点v1,v2と2つの制御点c1,c2とがv1,c1,c2,v2の順に並んでいる場合には、曲線エッジの曲線距離を式(5)で算出し、線分エッジの直線距離については式(6)で算出する。
d (v1, v2) = max (| x1-x2 |, | y1-y2 |) Formula (4)
When the two vertices v1 and v2 and the two control points c1 and c2 constituting the curve are arranged in the order of v1, c1, c2, and v2, the curve distance of the curve edge is calculated by the equation (5). The straight line distance of the line segment edge is calculated by equation (6).

d1=d(v1,c1)+d(c1,c2)+d(c2,v2) ・・・式(5)
d2=d(v1,v2) ・・・式(6)
その後、d1とd2との差が予め設定された所定の閾値よりも大きい場合には、曲線エッジを分割する。
d1 = d (v1, c1) + d (c1, c2) + d (c2, v2) (5)
d2 = d (v1, v2) (6)
Thereafter, when the difference between d1 and d2 is larger than a predetermined threshold value, the curve edge is divided.

その他、曲線エッジが式(1)〜式(3)において(u,v=0)の位置で表されるような場合には、(u=1/2,v=0)の位置で分割するしてもよい。   In addition, when the curved edge is represented by the position (u, v = 0) in the expressions (1) to (3), the curve edge is divided at the position (u = 1/2, v = 0). May be.

なお、このようにパラメトリック曲線を分割する方法、すなわち、曲線形状を保持したままセグメント数を増やす方法については、「Curves and Surfaces for CAGD; 5th edition」(Gerald Farin著、Academic Press, 2002)(以下、参考文献1)に示されているように周知の技術である。   As for the method of dividing the parametric curve in this way, that is, the method of increasing the number of segments while maintaining the curve shape, “Curves and Surfaces for CAGD; 5th edition” (Gerald Farin, Academic Press, 2002) (below) This is a well-known technique as shown in Reference 1).

ここで、曲線エッジを分割すると、その曲線エッジを境界に有する2つのパッチに影響が及ぶため、プリミティブパッチを生成する前に、全ての曲線エッジについて分割するかどうかを判定し、分割対象と判断された曲線エッジを予め分割しておくようにしてもよい。   Here, dividing a curved edge affects two patches that have the curved edge as a boundary. Therefore, before generating a primitive patch, determine whether to divide all curved edges and determine that they are to be divided. The curved edge may be divided in advance.

次いで、図2に戻り、パラメトリック曲線分割部20が、上記参考文献1に記載された分割手法を利用して分割された各曲線エッジの制御点をそれぞれ生成し、各制御点について新たなIDを付与して、分割前の曲線エッジのIDに関連付けてデータテーブルに追加する(S206)。   Next, returning to FIG. 2, the parametric curve dividing unit 20 generates control points for each curve edge divided by using the dividing method described in Reference Document 1 above, and assigns a new ID for each control point. Assigned and added to the data table in association with the ID of the curve edge before division (S206).

次いで、パラメトリック曲線分割部20が、分割された曲線エッジ上の分割点と、当該曲線エッジを境界に有する2つのプリミティブパッチの他の頂点(曲線エッジを構成する両頂点ではない頂点)とを結んで新たなエッジを追加し、その追加された新たなエッジでそれら2つのプリミティブパッチをそれぞれ分割し、分割されたプリミティブパッチやエッジについて新たなIDを付与し、分割前の曲線エッジのIDに関連付けてデータテーブルに追加する(S206〜S208)。   Next, the parametric curve dividing unit 20 connects the dividing points on the divided curve edges and the other vertices of the two primitive patches (the vertices that are not the two vertices constituting the curve edge) having the curve edge as a boundary. Add a new edge, divide each of the two primitive patches by the added new edge, assign a new ID to the divided primitive patch or edge, and associate it with the ID of the curve edge before the division Are added to the data table (S206 to S208).

なお、S206の分割手順については図9を参照されたい。新たに追加されたエッジについては、特に曲線と対応付ける必要はなく、制御点を持たなくてもよい。   Refer to FIG. 9 for the dividing procedure of S206. The newly added edge does not need to be associated with a curve in particular, and may not have a control point.

ここで、1つのパッチを構成する2つのエッジを分割する際は注意が必要である。あるパッチの頂点v1,v2,v3がエッジe1=(v2,v3),e2=(v3,v1),e3=(v1,v2)を有するとき、e1を分割後にe2を分割した場合と、逆にe2を分割後にe1を分割した場合とでは分割結果が異なる場合がある。そこで、ある特定のプリミティブパッチのみを考慮するような場合には、そのパッチを構成するエッジの中で距離の差が大きいエッジから優先して分割し、分割が一意的になるようにしてもよい。また、すべてのパッチのエッジについて距離の際を事前に評価しておき、その距離の差が大きいものから順に分割し、エッジの分割が完了してからプリミティブパッチを分割してもよい。   Here, care must be taken when dividing the two edges constituting one patch. When vertexes v1, v2, and v3 of a patch have edges e1 = (v2, v3), e2 = (v3, v1), e3 = (v1, v2), the reverse of when e2 is divided and e2 is divided The division result may differ from the case where e1 is divided after dividing e2. Therefore, when only a specific primitive patch is considered, it is possible to preferentially divide the edge that constitutes the patch from the edge having a large distance difference so that the division becomes unique. . Alternatively, the distances of the edges of all patches may be evaluated in advance, and the patches may be divided in descending order of the distance difference, and the primitive patches may be divided after the edge division is completed.

なお、分割後のエッジについても距離の差が所定の閾値を超える場合には、当該距離の差が所定の閾値以下になるまで分割後のエッジを更に分割することを繰り返すようにしてもよいし、その分割回数を予め決めておくようにしてもよい。   In addition, when the difference in distance also exceeds a predetermined threshold value for the edge after division, the division of the divided edge may be repeated until the difference in distance becomes equal to or less than the predetermined threshold value. The number of divisions may be determined in advance.

次いで、プリミティブ画像生成/表示部21が、S103で生成した曲面パッチに基づくビットマップ画像から、S203及びS206で生成されたプリミティブパッチの内部領域に対応する画素位置の色値を取得して、プリミティブパッチに基づくプリミティブ画像を生成する(S209)。生成されたプリミティブ画像例については図3(c)を参照されたい。   Next, the primitive image generation / display unit 21 acquires the color value of the pixel position corresponding to the internal area of the primitive patch generated in S203 and S206 from the bitmap image based on the curved surface patch generated in S103, and the primitive A primitive image based on the patch is generated (S209). Refer to FIG. 3C for an example of the generated primitive image.

なお、このプリミティブ画像は、S103で生成したビットマップ画像をそのまま用いても良いし、その複製を用いてもよい。   As the primitive image, the bitmap image generated in S103 may be used as it is, or a duplicate of the bitmap image may be used.

次いで、第2ラベルデータ生成/記憶部22が、プリミティブ画像に対応する第2ラベルデータを生成し、プリミティブパッチの識別子をプリミティブパッチ(分割されたプリミティブパッチを含む)の内部領域に対応する各位置にそれぞれ記憶する(S210)。生成された第2ラベルデータ例については図3(d)を参照されたい。   Next, the second label data generation / storage unit 22 generates the second label data corresponding to the primitive image, and sets the identifier of the primitive patch to each position corresponding to the internal area of the primitive patch (including the divided primitive patch). (S210). Refer to FIG. 3D for an example of the generated second label data.

次いで、プリミティブ画像生成/表示部21が、S209で生成したプリミティブ画像をディスプレイ上に表示する(S211)。   Next, the primitive image generation / display unit 21 displays the primitive image generated in S209 on the display (S211).

その後、識別子取得部15が、ディスプレイに表示されたプリミティブ画像に対するプリミティブパッチの選択処理を受け入れ、その選択により指定された画素範囲に対応するプリミティブパッチの識別子をS210で生成した第2ラベルデータから取得して、画像処理部16が、その取得したプリミティブパッチの識別子を用いて処理を行う(S212〜S214)。   Thereafter, the identifier acquisition unit 15 accepts a primitive patch selection process for the primitive image displayed on the display, and acquires the identifier of the primitive patch corresponding to the pixel range designated by the selection from the second label data generated in S210. Then, the image processing unit 16 performs processing using the acquired primitive patch identifier (S212 to S214).

最後に、ベクトルデータ更新部17が、S214によって更新されたベクトルデータを用いてデータ記憶部11のベクトルデータを更新する(S215)。   Finally, the vector data update unit 17 updates the vector data in the data storage unit 11 using the vector data updated in S214 (S215).

なお、S212〜S215は、プリミティブパッチの選択処理が終了するまで繰り返される(S216)。   Note that S212 to S215 are repeated until the primitive patch selection processing is completed (S216).

また、曲面パッチをプリミティブで近似したプリミティブパッチについてのラベルデータであることから、図7を用いて説明したように、エッジ付近では正確な識別子ではなく隣接する識別子が取得される可能性があるが、プリミティブエッジによるラベル表現は後述する頂点の移動を高速に実現できるという効果がある。   Further, since it is label data for a primitive patch that approximates a curved surface patch with a primitive, as described with reference to FIG. 7, there is a possibility that an adjacent identifier is acquired in the vicinity of an edge instead of an accurate identifier. The label expression by the primitive edge has an effect that the vertex movement described later can be realized at high speed.

引き続き図2を参照しながら、プリミティブパッチの頂点が移動した場合の動作について説明する。   The operation when the vertex of the primitive patch moves will be described with reference to FIG.

S213の後、頂点移動受入部23が、S211で表示されたプリミティブ画像上において、移動させる頂点座標の指定とその移動量を受け入れる(S301)。   After S213, the vertex movement receiving unit 23 receives the designation of the vertex coordinates to be moved and the movement amount on the primitive image displayed in S211 (S301).

次いで、プリミティブ画像更新/表示部24が、S301で受け入れた移動後の位置や移動量に基づいてプリミティブ画像を修正する(S302)。   Next, the primitive image update / display unit 24 modifies the primitive image based on the moved position and movement amount received in S301 (S302).

図10に示したように、プリミティブパッチの頂点移動は頂点を共有する複数のプリミティブパッチに影響を与えるが、プリミティブパッチ内の色値は頂点移動によってプリミティブパッチの形状に変形が生じても容易に計算可能である。   As shown in FIG. 10, the vertex movement of the primitive patch affects a plurality of primitive patches sharing the vertex, but the color value in the primitive patch can be easily changed even if the shape of the primitive patch is deformed by the vertex movement. It can be calculated.

例えば、頂点の移動については、上記参考文献1に示されたアファイン変換を用いることにより、移動後のプリミティブパッチ内部の座標値が移動前のどの位置から移動されたのかを容易に計算することができる。また、色値については、移動前の位置の色値を用いることにより、容易に計算することができる。   For example, with respect to the movement of the vertex, by using the affine transformation shown in Reference Document 1 above, it is possible to easily calculate from which position before the movement the coordinate value inside the moved primitive patch is moved. it can. The color value can be easily calculated by using the color value at the position before the movement.

また、S302と同時に、第2ラベルデータ更新/記憶部25が、S302での更新に伴って、第2ラベルデータ内のプリミティブパッチの識別子を修正する(S303)。移動対象となる頂点を含むプリミティブパッチのみ識別子を修正するため低コストで実現できる。   At the same time as S302, the second label data update / storage unit 25 corrects the identifier of the primitive patch in the second label data in accordance with the update in S302 (S303). Only the primitive patch including the vertex to be moved can be realized at low cost because the identifier is corrected.

最後に、S215に進み、ベクトルデータ更新部17が、S301で受け入れた移動後の位置や移動量に基づいてデータ記憶部11のベクトルデータを更新する。   Finally, proceeding to S215, the vector data updating unit 17 updates the vector data in the data storage unit 11 based on the moved position and movement amount received in S301.

ここで、図11又は図12を参照しながら頂点移動があった場合のベクトルデータの更新例について説明する。図11では、頂点とその頂点に関わる曲線エッジが示されている。曲線エッジを線分エッジで近似しても、制御点があれば曲線を容易に復元することができる。   Here, an example of updating vector data when there is a vertex movement will be described with reference to FIG. 11 or FIG. FIG. 11 shows a vertex and a curved edge related to the vertex. Even if the curve edge is approximated by a line segment edge, the curve can be easily restored if there is a control point.

図11において、v2の頂点をv2aに移動させることにより、e1の線分エッジをe1aに移動させたとする。このとき、もとの曲線エッジを構成するための頂点v1、v2及び制御点c1、c2も影響を受けるが、本発明においては、v2とv2に近い制御点c2のみを移動させ、当該移動対象のみのベクトルデータを更新する。一方、c2が位置的に決まらない場合はc2を移動させなくてもよいが、例えば、v1とc2aのユークリッド距離とv1とc2aのユークリッド距離とが変化しないという拘束条件を用いてc2aの座標値を決めてもよい。   In FIG. 11, it is assumed that the line segment edge of e1 is moved to e1a by moving the vertex of v2 to v2a. At this time, the vertices v1 and v2 and the control points c1 and c2 for forming the original curved edge are also affected, but in the present invention, only the control point c2 close to v2 and v2 is moved, and the movement target Only update the vector data. On the other hand, when c2 is not determined in position, it is not necessary to move c2. However, for example, the coordinate value of c2a using a constraint condition that the Euclidean distance between v1 and c2a and the Euclidean distance between v1 and c2a do not change. You may decide.

図12では、分割されたプリミティブパッチの頂点が移動する場合が示されている。この場合であっても、分割点において曲線エッジがなめらかに接続されていることから、上記と同様に、移動した頂点に近い方の制御点のみを移動させ、当該移動対象のみのベクトルデータを更新する。これにより、分割点においてエッジのなめらかな接続を保持することができる。   FIG. 12 shows a case where the vertex of the divided primitive patch moves. Even in this case, since the curved edges are smoothly connected at the dividing points, only the control point closer to the moved vertex is moved and the vector data of only the moving target is updated as described above. To do. Thereby, the smooth connection of the edge can be maintained at the dividing point.

すなわち、図2のS215において、ベクトルデータ更新部17は、エッジが分割されていないパッチについては、移動対象の頂点と当該頂点に近い制御点のみのベクトルデータを更新する。   That is, in S215 of FIG. 2, the vector data update unit 17 updates the vector data of only the vertex to be moved and the control point close to the vertex for the patch whose edge is not divided.

また、必要に応じて、更新後のプリミティブ画像から適当なサンプリング点を抽出し、パッチ補間に必要な点座標と当該点座標における色値とを取得して、頂点移動後のプリミティブパッチに対応する画素の色値を決定して、ベクトルデータに追記してもよい。例えば、頂点移動後のプリミティブパッチに対応する画素の色値を、頂点移動により更新されたプリミティブの頂点及びプリミティブ画像内のサンプリング点の位置情報と、その頂点及びサンプリング点の更新前の色値とを用いて決定して、ベクトルデータに追記する。   If necessary, an appropriate sampling point is extracted from the updated primitive image, and the point coordinates necessary for patch interpolation and the color value at the point coordinates are acquired to correspond to the primitive patch after the vertex movement. The color value of the pixel may be determined and added to the vector data. For example, the color value of the pixel corresponding to the primitive patch after moving the vertex, the position information of the vertex of the primitive updated by moving the vertex and the sampling point in the primitive image, and the color value before updating the vertex and sampling point And add to the vector data.

一方、エッジが分割されたパッチについては、分割により増加したパッチについて、そのパッチを構成する頂点、制御点、サンプリング点、それら各点の色値をベクトルデータにそれぞれ追記する。また、増加した2以上のパッチの2以上の曲線エッジが1つのパラメトリック曲線で表すことができるように頂点及び制御点した後に、頂点、制御点、サンプリング点、それら各点の色値をベクトルデータにそれぞれ追記してもよい。   On the other hand, for a patch whose edge is divided, for the patch increased by the division, the vertex, the control point, the sampling point, and the color value of each point constituting the patch are added to the vector data. In addition, after vertexes and control points so that two or more curved edges of the increased two or more patches can be represented by one parametric curve, the vertex, control points, sampling points, and color values of each point are vector data. You may add to each.

また、必要に応じて、更新後のプリミティブ画像から適当なサンプリング点を抽出し、パッチ補間に必要な点座標と当該点座標における色値とを取得して、頂点移動後のプリミティブパッチに対応する画素の色値を決定して、ベクトルデータに追記してもよい。例えば、頂点移動後のプリミティブパッチに対応する画素の色値を、頂点移動により更新されたプリミティブの頂点及びプリミティブ画像内のサンプリング点の位置情報と、その頂点及びサンプリング点の更新前の色値とを用いて決定して、ベクトルデータに追記する。   If necessary, an appropriate sampling point is extracted from the updated primitive image, and the point coordinates necessary for patch interpolation and the color value at the point coordinates are acquired to correspond to the primitive patch after the vertex movement. The color value of the pixel may be determined and added to the vector data. For example, the color value of the pixel corresponding to the primitive patch after moving the vertex, the position information of the vertex of the primitive updated by moving the vertex and the sampling point in the primitive image, and the color value before updating the vertex and sampling point And add to the vector data.

なお、接続されている複数の曲線を1のパラメトリック曲線で近似する方法は、例えば、複数の曲線を構成する頂点や当該曲線上の適当な点を選定し、その頂点と適当な点を通るようなパラメトリック曲線を得られる制御点位置を計算しても良い。このような近似手法はデータフィッティングと呼ばれるものであり、例えば「An Algorithm for Automatically Fitting Digitized Curves」(Philip J. Schneider著、Graphics Gems, Morgan Kaufmann Publishers, pp.612-626, 1990.)に示されているように周知の技術である。   The method of approximating a plurality of connected curves with a single parametric curve is, for example, to select vertices constituting a plurality of curves and appropriate points on the curves, and pass the vertices and appropriate points. It is also possible to calculate the control point position where a simple parametric curve can be obtained. Such an approximation method is called data fitting, and is shown, for example, in “An Algorithm for Automatically Fitting Digitized Curves” (Philip J. Schneider, Graphics Gems, Morgan Kaufmann Publishers, pp.612-626, 1990.). It is a well-known technique.

本実施の形態によれば、エッジがパラメトリック曲線で構成される曲面パッチではなく、直線境界を有するプリミティブパッチの識別子を用いて処理するので、レンダリングに係る計算コストを低減し、画質をできるだけ損なうことなく高速にベクトル化された画像を表示し編集することができる。また、高速表示に基づいて編集作業を元のベクトルデータに反映することができる。   According to the present embodiment, processing is performed using an identifier of a primitive patch having a straight boundary instead of a curved surface patch whose edge is formed by a parametric curve, so that the calculation cost for rendering is reduced and the image quality is impaired as much as possible. It is possible to display and edit a vectorized image at high speed. Further, the editing work can be reflected in the original vector data based on the high-speed display.

以下、そのように直線境界を有するプリミティブパッチの識別子を用いることによって得られる当該効果への作用について詳述しておく。   Hereinafter, the action on the effect obtained by using the identifier of the primitive patch having the straight line boundary will be described in detail.

辺がパラメトリック曲線で構成された曲面パッチによって構成された画像(これは、元のビットマップ画像を辺がパラメトリック曲線で構成された曲面パッチによって過不足なく分割されることと等価)を画面上にレンダリング(描画)する際は、ビットマップ画面上の各画素に対応する位置の色値を計算によって決定するが、この「各画素に対応する位置」がどの曲面パッチに属しているかを決定するのは容易ではない。   An image composed of curved patches with sides composed of parametric curves (this is equivalent to dividing the original bitmap image with curved patches composed of sides with parametric curves) When rendering (drawing), the color value of the position corresponding to each pixel on the bitmap screen is determined by calculation, and it is determined to which curved surface patch this “position corresponding to each pixel” belongs. Is not easy.

これは、ある画素をひとつ選んだとしても、それがひとつの曲面パッチの内部にあるのか外部にあるのかを判定することですら、多くの計算を要するからである。例えば、ある位置(x,y)の画素が曲面パッチP1に含まれるか否かを判定するには、上記式(1)や式(2)から(u,v)の値を例えばニュートン−ラフソン法等を用いて数値計算によって近似的に求め、それが0≦u≦1、0≦v≦1にあるかどうかを評価することで判定することが一般的である。   This is because even if one pixel is selected, even if it is determined whether it is inside or outside one curved patch, a lot of calculations are required. For example, in order to determine whether or not a pixel at a certain position (x, y) is included in the curved surface patch P1, the values of (u, v) from the above formulas (1) and (2) are set to, for example, Newton-Raphson. Generally, it is generally determined by numerical calculation using a method or the like, and it is determined by evaluating whether it is 0 ≦ u ≦ 1 or 0 ≦ v ≦ 1.

しかしながら、曲面パッチP1に含まれていなければ、別の曲面パッチP2について同様の計算を行うなど、当該画素を含む曲面パッチを見つけるまでこの判定を繰り返すことになる。   However, if it is not included in the curved surface patch P1, this determination is repeated until a curved surface patch including the pixel is found, for example, the same calculation is performed for another curved surface patch P2.

これと同じ理由により、曲面パッチで構成された画像上で、ある画素をユーザが選択した際、それがどの曲面パッチの内部なのかを判定するのは容易ではない。   For the same reason, when a user selects a certain pixel on an image composed of curved patches, it is not easy to determine which curved patch is inside.

そこで、曲面パッチによるベクトル化画像をレンダリングする際に、同時に曲面パッチの識別子を第1ラベルデータに書き込んでいき、画像生成後ある画素が選択された場合には、上記数式を用いた数値解析に基づく曲面パッチの内外判定ではなく、この第1ラベルデータ上の当該位置に格納されている識別子によって判定することにより、直ちに当該画素位置を含む曲面パッチを特定可能となる。   Therefore, when rendering a vectorized image with a curved patch, the identifier of the curved patch is written into the first label data at the same time, and when a pixel is selected after image generation, numerical analysis using the above formula is performed. By determining based on the identifier stored at the position on the first label data, instead of determining whether the surface patch is based on the inside or outside, it is possible to immediately specify the curved surface patch including the pixel position.

しかしながら、この方法では、曲面パッチを変形させるなどの編集を加えた場合に、変形後の新しい画像をレンダリングするのも前述の理由により時間がかかるため、効率が良いとまではいえない。   However, in this method, when editing such as deforming a curved surface patch is performed, it takes time for the above reason to render a new image after deformation, so it cannot be said that the method is efficient.

これに対し、辺が直線(線分)で構成されたプリミティブパッチは、比較的簡単な計算で、ある点が内部か外部かを判定することが可能となる。具体的には、三角形の内部に含まれるかどうかを単純に計算すればよく、矩形の場合には2つの三角形に対角線で分けて同じ計算を2回行えばよい。更には、第2ラベルデータに格納した識別子を内外判定に用いれば、そのような計算すら不要となる。また、プリミティブパッチ変形後の色の再計算や第2ラベルデータの更新についても画素の内外判定が容易なため、曲面パッチに比べて極めて少ない計算量で済むことになる。   On the other hand, a primitive patch whose sides are composed of straight lines (line segments) can determine whether a certain point is inside or outside by relatively simple calculation. Specifically, it is only necessary to simply calculate whether or not the image is included in a triangle, and in the case of a rectangle, the same calculation may be performed twice by dividing the triangle into two triangles. Furthermore, if the identifier stored in the second label data is used for the inside / outside determination, even such a calculation becomes unnecessary. In addition, regarding the recalculation of the color after the deformation of the primitive patch and the update of the second label data, it is easy to determine the inside / outside of the pixel.

従って、レンダリングに係る計算コストを低減することが可能となり、画質をできるだけ損なうことなく高速にベクトル化された画像を表示し編集することが可能となる。   Therefore, it is possible to reduce the calculation cost for rendering, and it is possible to display and edit a vectorized image at high speed without losing image quality as much as possible.

最後に、本実施の形態で説明した画像処理装置はコンピュータで構成される。すなわち、画像処理装置を構成している各処理機能部は、メモリやハードディスク等の記憶手段、CPU等の演算手段で実現され、プログラムで実行される。   Finally, the image processing apparatus described in this embodiment is configured by a computer. That is, each processing function unit constituting the image processing apparatus is realized by a storage unit such as a memory or a hard disk, or an arithmetic unit such as a CPU, and is executed by a program.

また、本実施の形態で説明した画像処理装置をプログラムとして光記憶装置や磁気記憶装置等の記録媒体に読出可能に記録し、この記録媒体をコンピュータに組み込んだり、若しくは記録媒体に記録されたプログラムを、任意の通信回線を介してコンピュータにダウンロードしたり、又は記録媒体からインストールし、該プログラムでコンピュータを動作させることにより、上述した各動作を画像処理装置として機能させることができるのは勿論である。   In addition, the image processing apparatus described in this embodiment is recorded as a program in a recording medium such as an optical storage device or a magnetic storage device in a readable manner, and the recording medium is incorporated in a computer or recorded on the recording medium. Can be downloaded to a computer via an arbitrary communication line, or installed from a recording medium, and the computer can be operated by the program so that each operation described above can function as an image processing apparatus. is there.

11…データ記憶部
12…ベクトルデータ読込/表示部
13…識別子付与部
14…第1ラベルデータ生成/記憶部
15…識別子取得部
16…画像処理部
17…ベクトルデータ更新部
18…プリミティブパッチ生成部
19…曲線エッジ/線分エッジ評価部
20…パラメトリック曲線分割部
21…プリミティブ画像生成/表示部
22…第2ラベルデータ生成/記憶部
23…頂点移動受入部
24…プリミティブ画像更新/表示部
25…第2ラベルデータ更新/記憶部
S101〜S111、S201〜S216、S301〜S303…ステップ
DESCRIPTION OF SYMBOLS 11 ... Data memory | storage part 12 ... Vector data reading / display part 13 ... Identifier provision part 14 ... 1st label data generation / storage part 15 ... Identifier acquisition part 16 ... Image processing part 17 ... Vector data update part 18 ... Primitive patch generation part DESCRIPTION OF SYMBOLS 19 ... Curve edge / line segment edge evaluation part 20 ... Parametric curve division part 21 ... Primitive image generation / display part 22 ... Second label data generation / storage part 23 ... Vertex movement acceptance part 24 ... Primitive image update / display part 25 ... Second label data update / storage unit S101-S111, S201-S216, S301-S303 ... step

Claims (5)

ビットマップ画像内のオブジェクトをパラメトリック曲面で近似した矩形又は三角形の曲面パッチのベクトルデータを記憶しておく記憶手段と、
前記記憶手段からベクトルデータを読み出して、前記曲面パッチを構成する頂点を線分で結んだプリミティブパッチを生成する生成手段と、
前記曲面パッチの2つの頂点を結ぶ曲線エッジを分割し、分割された曲線エッジ上の分割点と当該曲面パッチの他の頂点とを結ぶ線分で前記プリミティブパッチを分割する分割手段と、
前記ビットマップ画像の各画素に対応する配列データを生成し、分割されたプリミティブパッチの内部領域に対応する位置にプリミティブパッチを識別する識別子を格納する格納手段と、
指定された画素位置に対応する識別子を前記配列データから取得し、取得された前記プリミティブパッチの識別子を用いて要求に応じた処理を行う処理手段と、
を有することを特徴とする画像処理装置。
Storage means for storing vector data of rectangular or triangular curved surface patches obtained by approximating an object in a bitmap image by a parametric curved surface;
Generating means for reading vector data from the storage means and generating a primitive patch connecting the vertices constituting the curved surface patch with line segments;
A dividing unit that divides a curved edge connecting two vertices of the curved surface patch, and divides the primitive patch by a line segment connecting a dividing point on the divided curved edge and the other vertex of the curved surface patch;
Storage means for generating array data corresponding to each pixel of the bitmap image and storing an identifier for identifying the primitive patch at a position corresponding to the inner region of the divided primitive patch;
Processing means for acquiring an identifier corresponding to a designated pixel position from the array data, and performing processing according to a request using the acquired identifier of the primitive patch;
An image processing apparatus comprising:
頂点移動後のプリミティブパッチに対応する画素の色値を、当該頂点移動により更新されたプリミティブの頂点及びプリミティブ画像内のサンプリング点の位置情報と、当該頂点及び当該サンプリング点の更新前の色値とを用いて決定する決定手段を更に有することを特徴とする請求項1に記載の画像処理装置。 The color value of the pixel corresponding to the primitive patch after the vertex movement, the position information of the vertex of the primitive updated by the vertex movement and the sampling point in the primitive image, and the color value before the update of the vertex and the sampling point The image processing apparatus according to claim 1, further comprising a determination unit configured to determine using コンピュータ行う画像処理方法において、
記憶手段が、ビットマップ画像内のオブジェクトをパラメトリック曲面で近似した矩形又は三角形の曲面パッチのベクトルデータを記憶手段に記憶しておくステップと、
生成手段が、前記記憶手段からベクトルデータを読み出して、前記曲面パッチを構成する頂点を線分で結んだプリミティブパッチを生成するステップと、
分割手段が、前記曲面パッチの2つの頂点を結ぶ曲線エッジを分割し、分割された曲線エッジ上の分割点と当該曲面パッチの他の頂点とを結ぶ線分で前記プリミティブパッチを分割するステップと、
格納手段が、前記ビットマップ画像の各画素に対応する配列データを生成し、分割されたプリミティブパッチの内部領域に対応する位置にプリミティブパッチを識別する識別子を格納するステップと、
処理手段が、指定された画素位置に対応する識別子を前記配列データから取得し、取得された前記プリミティブパッチの識別子を用いて要求に応じた処理を行うステップと、
を有することを特徴とする画像処理方法。
An image processing method performed in a computer,
A step of storing means stores the object in the bitmap image in the storage unit vector data surface patch of rectangular or triangular is approximated by a parametric surface,
A generation unit that reads vector data from the storage unit and generates a primitive patch connecting vertices constituting the curved surface patch with line segments;
Dividing means for dividing a curved edge connecting two vertices of the curved surface patch, and dividing the primitive patch by a line segment connecting a dividing point on the divided curved edge and another vertex of the curved surface patch; ,
Storing means for generating array data corresponding to each pixel of the bitmap image and storing an identifier for identifying the primitive patch at a position corresponding to the inner region of the divided primitive patch;
A processing unit that acquires an identifier corresponding to a designated pixel position from the array data, and performs processing according to a request using the acquired identifier of the primitive patch;
An image processing method comprising:
決定手段が、頂点移動後のプリミティブパッチに対応する画素の色値を、当該頂点移動により更新されたプリミティブの頂点及びプリミティブ画像内のサンプリング点の位置情報と、当該頂点及び当該サンプリング点の更新前の色値とを用いて決定するステップを更に有することを特徴とする請求項3に記載の画像処理方法。 The determination means determines the color value of the pixel corresponding to the primitive patch after the vertex movement , the position information of the vertex of the primitive updated by the vertex movement and the sampling point in the primitive image, and before the update of the vertex and the sampling point. The image processing method according to claim 3, further comprising a step of determining using the color values of the image data. 請求項3又は4に記載の画像処理方法における各ステップをコンピュータに実行させることを特徴とする画像処理プログラム。   An image processing program for causing a computer to execute each step in the image processing method according to claim 3 or 4.
JP2010274373A 2010-12-09 2010-12-09 Image processing apparatus, image processing method, and image processing program Expired - Fee Related JP5504142B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010274373A JP5504142B2 (en) 2010-12-09 2010-12-09 Image processing apparatus, image processing method, and image processing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010274373A JP5504142B2 (en) 2010-12-09 2010-12-09 Image processing apparatus, image processing method, and image processing program

Publications (2)

Publication Number Publication Date
JP2012123655A JP2012123655A (en) 2012-06-28
JP5504142B2 true JP5504142B2 (en) 2014-05-28

Family

ID=46505018

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010274373A Expired - Fee Related JP5504142B2 (en) 2010-12-09 2010-12-09 Image processing apparatus, image processing method, and image processing program

Country Status (1)

Country Link
JP (1) JP5504142B2 (en)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0222772A (en) * 1988-07-12 1990-01-25 Fujitsu Ltd Picture segment picking system
EP1026639A3 (en) * 1999-02-04 2002-09-04 Canon Kabushiki Kaisha 3D computer graphics processing apparatus and method
JP4035978B2 (en) * 2001-10-05 2008-01-23 コニカミノルタホールディングス株式会社 Three-dimensional shape model evaluation method, generation method, and apparatus
US8543338B2 (en) * 2007-01-16 2013-09-24 Simbionix Ltd. System and method for performing computerized simulations for image-guided procedures using a patient specific model
JP5451135B2 (en) * 2009-03-26 2014-03-26 キヤノン株式会社 Image processing apparatus and image processing method

Also Published As

Publication number Publication date
JP2012123655A (en) 2012-06-28

Similar Documents

Publication Publication Date Title
US7414636B2 (en) Rendering apparatus, rendering processing method and computer program product
JP2017130188A (en) Compression of three-dimensional modeled object
CN104732479B (en) Resizing an image
US7295202B2 (en) System for approximating and displaying three dimensional CAD data, and system for executing method thereof
KR20050030595A (en) Image processing apparatus and method
JP4464657B2 (en) Curved image processing apparatus and curved image processing method
JP2016157429A (en) Engraving 2d image on subdivision surface
CN101714259B (en) Graphics processing systems
KR20050030569A (en) Image processing apparatus and method thereof
US11087511B1 (en) Automated vectorization of a raster image using a gradient mesh with arbitrary topology
JP2009301284A (en) Drawing device and method
JP2000251086A (en) Device and method for generating curve and program providing medium
CN115546027B (en) Image suture line determination method, device and storage medium
JP5504142B2 (en) Image processing apparatus, image processing method, and image processing program
Wu et al. Correct resolution rendering of trimmed spline surfaces
JP5567525B2 (en) Moving image processing method, moving image processing apparatus, and moving image processing program
CN111260780B (en) Real-time terrain modification method based on elevation of altitude map
CN111932566B (en) Model contour diagram generation method, device and system
Jang et al. GPU-optimized indirect scalar displacement mapping
JP5956875B2 (en) Image processing apparatus and image processing method
JP2012230668A (en) Image processor, image processing method, and program
JP2009122998A (en) Method for extracting outline from solid/surface model, and computer software program
US20100141649A1 (en) Drawing device
KR100392516B1 (en) real-time rendering method for noninterpolated volume data
US7656408B1 (en) Method and system for animating a border

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130121

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131126

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140108

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140311

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140317

R150 Certificate of patent or registration of utility model

Ref document number: 5504142

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees