JP6472226B2 - Image processing apparatus, image processing method, and computer program - Google Patents

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

Info

Publication number
JP6472226B2
JP6472226B2 JP2014240363A JP2014240363A JP6472226B2 JP 6472226 B2 JP6472226 B2 JP 6472226B2 JP 2014240363 A JP2014240363 A JP 2014240363A JP 2014240363 A JP2014240363 A JP 2014240363A JP 6472226 B2 JP6472226 B2 JP 6472226B2
Authority
JP
Japan
Prior art keywords
mesh
color
vertex
candidate
point
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.)
Active
Application number
JP2014240363A
Other languages
Japanese (ja)
Other versions
JP2016103106A (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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2014240363A priority Critical patent/JP6472226B2/en
Publication of JP2016103106A publication Critical patent/JP2016103106A/en
Application granted granted Critical
Publication of JP6472226B2 publication Critical patent/JP6472226B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Processing (AREA)
  • Image Generation (AREA)

Description

本発明は、画像をベクトル表現するための技術に関するものである。   The present invention relates to a technique for expressing an image as a vector.

従来から、画像をベクトル表現する技術は広く知られている。ベクトル表現された画像は、拡大縮小時に画質劣化が少ない、画像編集し易い、高い圧縮率を実現できるなどの利点がある。   Conventionally, a technique for expressing an image as a vector is widely known. The vector-represented image has advantages such as little image quality degradation at the time of enlargement / reduction, easy image editing, and high compression ratio.

イラストや文字をベクトル表現する場合には、オブジェクトの輪郭をベジェ、スプライン関数などで近似する手法が用いられている。オブジェクト領域内は、単一色、線形グラデーション、放射状グラデーションなどで塗ることができるが、複雑なグラデーションの表現は困難である。   In the case of vector representation of illustrations and characters, a method of approximating the contour of an object with a Bezier, spline function or the like is used. The object area can be painted with a single color, linear gradation, radial gradation, etc., but it is difficult to express complex gradation.

複雑なグラデーションを含むオブジェクトをベクトル表現する場合には、Adobe Illustrator(登録商標)のグラディエント・メッシュ・ツールが一般に用いられている。グラディエント・メッシュでは、メッシュに色と勾配を与えて3次関数を生成することで、複雑なグラデーションを含むオブジェクトを描画できる(特許文献1)。   In the case of expressing an object including a complex gradation as a vector, an Adobe Illustrator (registered trademark) gradient mesh tool is generally used. In a gradient mesh, an object including a complex gradation can be drawn by generating a cubic function by giving a color and a gradient to the mesh (Patent Document 1).

グラディエント・メッシュは4頂点から成る曲線メッシュであるが、3頂点から成る曲線メッシュにより複雑なグラデーションをベクトル表現する技術が知られている(非特許文献1)。画像内のエッジを線分群(以下エッジ線と呼ぶ)として抽出し、エッジ線を再現する3頂点曲線メッシュ群を構成することでベクトル表現を行う。ここで3頂点曲線メッシュとは、メッシュの頂点数が3であり、頂点間を結ぶメッシュの辺が直線または曲線であるものとする。   A gradient mesh is a curved mesh composed of four vertices, and a technique for expressing a complex gradation vector by a curved mesh composed of three vertices is known (Non-Patent Document 1). Edges in the image are extracted as line segments (hereinafter referred to as edge lines), and a vector expression is performed by configuring a 3-vertex curve mesh group that reproduces the edge lines. Here, the three-vertex curve mesh is assumed that the number of vertices of the mesh is 3, and the sides of the mesh connecting the vertices are straight lines or curves.

また、各メッシュにおいて色変化の詳細度を変化させることができるよう、メッシュ内部に色を付記した分割頂点を設ける手法も開示されている(非特許文献2)。なお、上述の3頂点曲線メッシュでは、メッシュ制御が局所的にできるため、少ないメッシュ数でオブジェクトを近似できる利点がある。一方で、それまでの3頂点曲線メッシュはメッシュ単位に符号化され、メッシュ間で共有される頂点、辺、色を考慮していないため、符号化効率が低く、データ量が増大してしまっていた。そこで、本出願人は、辺を共有する、辺上のサンプリング点を共有する、エッジ線上のサンプリング点は2種類の色を有する、という3頂点曲線メッシュの特徴を利用してメッシュ表現の効率化を図ることを提案している(特許文献3)。   In addition, a method of providing divided vertices with colors added inside the mesh so that the level of detail of color change can be changed in each mesh is also disclosed (Non-Patent Document 2). Note that the above-described three-vertex curve mesh has an advantage that an object can be approximated with a small number of meshes because mesh control can be performed locally. On the other hand, the conventional three-vertex curve mesh is encoded in mesh units, and does not take into account vertices, edges, and colors shared between meshes, so the encoding efficiency is low and the amount of data increases. It was. Therefore, the present applicant uses the characteristics of a three-vertex curve mesh that shares edges, shares sampling points on the edges, and sampling points on the edge line have two colors, and improves mesh representation efficiency. (Patent Document 3).

特開平10−320585号公報Japanese Patent Laid-Open No. 10-320585 特開2002−260005号公報JP 2002-260005 A 特開2012−221319号公報JP 2012-221319 A

Tian Xia, Binbin Liao, and Yizhou Yu, 「Patch−Based Image Vectorization with Automatic Curvilinear Feature Alignment」, ACM SIGGRAPH Asia 2009, Vol.28, No.5.Tian Xia, Binbin Liao, and Yizhou Yu, “Patch-Based Image Collection with Automatic Curvilinear Feature Alignment”, ACM SIGGRAPH Asia Via.9. 28, no. 5. Cem YukselJohn KeyserDonald H. House, 「Mesh Colors」, Technical Report, Department of Computer Science, Texas A&M University, 2008Chem YukselJohn KeyserDonald H. House, “Mesh Colors”, Technical Report, Department of Computer Science, Texas A & M University, 2008

自然画をメッシュ形式で近似する自然画ベクトル化技術において、メッシュ群を構成する各メッシュをサブメッシュに分割し、サブメッシュの頂点における色情報をも用いてメッシュデータを生成する。この際の、サブメッシュの頂点(以降、色点とも称する)についてであるが、色点数を増やすと、画質は向上するが、一方で、データ量は増える。そこで、画質とデータ量のトレードオフを鑑みて、メッシュあたり一律の色点数とするのではなく、それぞれが異なる色点数をもつメッシュの混在する、適応的なメッシュ群を生成するための簡便で高速な方法が望まれる。   In a natural image vectorization technique for approximating a natural image in a mesh format, each mesh constituting a mesh group is divided into sub-mesh, and mesh data is also generated using color information at the vertices of the sub-mesh. At this time, regarding the vertexes of the sub-mesh (hereinafter also referred to as color points), when the number of color points is increased, the image quality is improved, but the data amount is increased. Therefore, in view of the trade-off between image quality and data volume, instead of using a uniform number of color points per mesh, it is simple and fast to generate an adaptive mesh group in which meshes with different numbers of color points are mixed. Is desired.

本発明はこのような問題に鑑みてなされたものであり、メッシュ毎にサブメッシュの頂点数を適応的に制御するための技術を提供する。   The present invention has been made in view of such a problem, and provides a technique for adaptively controlling the number of vertices of a sub-mesh for each mesh.

本発明の一様態は、入力画像から検出された検出線が、3頂点から成り且つ該3頂点間を結ぶ辺が直線または曲線であるメッシュの一辺となるように、前記入力画像を該メッシュを単位に分割し、該メッシュを複数のサブメッシュに分割するために該サブメッシュの各頂点を決定する画像処理装置であって、前記メッシュを分割するサブメッシュの頂点の候補として設定されている候補頂点群の一部である部分頂点群の色情報と、該候補頂点群において該部分頂点群を除く他頂点群の色情報から求めた該部分頂点群の色情報と、の差分を求める計算手段と、前記差分が規定値よりも小さい場合には、前記候補頂点群として前記他頂点群を設定してから前記計算手段を動作させ、前記差分が規定値以上の場合には、前記候補頂点群を、前記メッシュを分割するそれぞれのサブメッシュの頂点として決定する決定手段とを備えることを特徴とする。   According to one aspect of the present invention, the input image is input to the mesh so that a detection line detected from the input image is composed of three vertices and a side connecting the three vertices is one side of a mesh that is a straight line or a curve. An image processing apparatus that divides into units and determines each vertex of the sub-mesh to divide the mesh into a plurality of sub-mesh, and is a candidate set as a candidate for a vertex of the sub-mesh that divides the mesh Calculation means for obtaining a difference between the color information of the partial vertex group which is a part of the vertex group and the color information of the partial vertex group obtained from the color information of the other vertex group excluding the partial vertex group in the candidate vertex group When the difference is smaller than a specified value, the other vertex group is set as the candidate vertex group and then the calculation unit is operated. When the difference is equal to or larger than the specified value, the candidate vertex group The message Characterized in that it comprises a determination means for determining as vertices of each sub-meshes for dividing the Interview.

本発明の構成によれば、メッシュ毎にサブメッシュの頂点数を適応的に制御するための技術を提供することができる。   According to the configuration of the present invention, it is possible to provide a technique for adaptively controlling the number of vertices of sub-mesh for each mesh.

画像処理装置の機能構成例を示すブロック図。FIG. 3 is a block diagram illustrating an example of a functional configuration of the image processing apparatus. エッジ線として望ましくない結果となるケースを説明する図。The figure explaining the case where an undesirable result is obtained as an edge line. 特徴点抽出部1022の動作を説明する図。The figure explaining operation | movement of the feature point extraction part 1022. FIG. 特徴点抽出部1022の動作を説明する図。The figure explaining operation | movement of the feature point extraction part 1022. FIG. 曲線メッシュ生成部1023が行う処理のフローチャート。The flowchart of the process which the curved mesh production | generation part 1023 performs. 図3(a)の特徴線に対して3頂点曲線メッシュ群生成処理を行った結果を示す図。The figure which shows the result of having performed the 3 vertex curve mesh group production | generation process with respect to the characteristic line of Fig.3 (a). 形状情報と色情報を説明する図。The figure explaining shape information and color information. ベジェパッチの分割について説明する図。The figure explaining the division | segmentation of a Bezier patch. 最大色点数決定部103以降の処理のフローチャート。The flowchart of the process after the maximum color point number determination part 103. FIG. 色点候補削減部1071の動作を説明する図。The figure explaining operation | movement of the color point candidate reduction part 1071. FIG. 分割指数、分割数、色点数の対応を示す図。The figure which shows a response | compatibility of a division | segmentation index | exponent, a division | segmentation number, and a color point number. 画像処理装置に適用可能なコンピュータのハードウェア構成例を示すブロック図。FIG. 2 is a block diagram illustrating a hardware configuration example of a computer applicable to an image processing apparatus.

以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施例の1つである。   Preferred embodiments of the present invention will be described below with reference to the accompanying drawings. The embodiment described below shows an example when the present invention is specifically implemented, and is one of the specific examples of the configurations described in the claims.

[第1の実施形態]
本実施形態では、入力画像から検出された検出線が、3頂点から成り且つ該3頂点間を結ぶ辺が直線または曲線であるメッシュの一辺となるように、入力画像を該メッシュを単位に分割し、該メッシュを複数のサブメッシュに分割するために該サブメッシュの各頂点を決定する画像処理装置の一例について説明する。すなわち、メッシュを分割するサブメッシュの頂点の候補として設定されている候補頂点群の一部である部分頂点群の色情報と、該候補頂点群において該部分頂点群を除く他頂点群の色情報から求めた該部分頂点群の色情報と、の差分を求め、該差分が規定値よりも小さい場合には、候補頂点群として他頂点群を設定してから差分を再度計算し、該差分が規定値以上の場合には、候補頂点群を、メッシュを分割するそれぞれのサブメッシュの頂点として決定する構成の一例について説明する。
[First Embodiment]
In this embodiment, the input image is divided in units of the mesh so that the detection line detected from the input image is composed of three vertices and the side connecting the three vertices is one side of a mesh that is a straight line or a curve. An example of an image processing apparatus that determines each vertex of the sub-mesh in order to divide the mesh into a plurality of sub-mesh will be described. That is, the color information of the partial vertex group that is a part of the candidate vertex group set as the candidate for the vertex of the sub-mesh that divides the mesh, and the color information of the other vertex group excluding the partial vertex group in the candidate vertex group If the difference is smaller than the specified value, the difference is calculated again after setting another vertex group as a candidate vertex group. An example of a configuration in which the candidate vertex group is determined as the vertex of each sub-mesh that divides the mesh when the value is equal to or greater than the predetermined value will be described.

先ず、本実施形態で用いる3頂点曲線メッシュについて説明する。上記の通り、3頂点曲線メッシュの各辺は曲線若しくは線分であるが、この曲線は、ベジェ曲線で構成されても良いし、B−スプラインで構成されても良い。即ち、曲線の種類は特定の種類に限るものではない。以下では説明上、3頂点曲線メッシュにパラメトリック曲面の一つである3頂点のベジェパッチを用いるものとする。ベジェパッチの中でも特に3次のベジェパッチでは、メッシュの各辺が3次のベジェ曲線となるため、3頂点曲線メッシュを生成したのちにユーザによる編集が容易であるという利点がある。P1、P2、P3を頂点とする3次のベジェパッチ内の点は以下の式で表される。   First, the three-vertex curve mesh used in this embodiment will be described. As described above, each side of the three-vertex curve mesh is a curve or a line segment, but this curve may be constituted by a Bezier curve or a B-spline. That is, the type of curve is not limited to a specific type. In the following description, a three-vertex Bezier patch that is one of parametric curved surfaces is used for the three-vertex curved mesh. Among the Bezier patches, in particular, the cubic Bezier patch has an advantage that each side of the mesh becomes a cubic Bezier curve, so that the user can easily edit after generating the three-vertex curve mesh. The points in the cubic Bezier patch having the vertices at P1, P2, and P3 are expressed by the following equations.

Figure 0006472226
Figure 0006472226

ここでs、t、uはパッチのパラメータ(パッチ内の重心座標)である。また、p1、p2、p3はそれぞれ、頂点P1、P2、P3の座標値である。c1、c2、c3、c4、c5、c6およびc7は曲線パッチの形状を定めるパラメータであり、特に、c1〜c6は、頂点P1,P2,P3のそれぞれに対する制御点(ベジェパッチの輪郭を決める3つのベジェ曲線の制御点)の座標値を表す。c7はベジェパッチの輪郭には関与しないパラメータであり、本実施形態ではベジェパッチの頂点の座標と、輪郭を成すベジェ曲線の制御点に対応するパラメータから以下の式によって定める。   Here, s, t, and u are patch parameters (center-of-gravity coordinates in the patch). Further, p1, p2, and p3 are coordinate values of the vertices P1, P2, and P3, respectively. c1, c2, c3, c4, c5, c6, and c7 are parameters that determine the shape of the curved patch. In particular, c1 to c6 are control points for the vertices P1, P2, and P3 (three parameters that determine the contour of the Bezier patch). This represents the coordinate value of the control point of the Bezier curve. c7 is a parameter that does not relate to the contour of the Bezier patch. In this embodiment, the parameter is determined from the coordinates of the vertex of the Bezier patch and the parameter corresponding to the control point of the Bezier curve forming the contour by the following equation.

Figure 0006472226
Figure 0006472226

次に、本実施形態に係る画像処理装置の機能構成例について、図1のブロック図を用いて説明する。なお、図1に示した構成は、以下に説明する処理を実現可能な構成の一例に過ぎず、同等以上の処理を実現可能な構成であれば、図1に示した構成に限らず、如何なる構成を採用しても構わない。   Next, a functional configuration example of the image processing apparatus according to the present embodiment will be described with reference to the block diagram of FIG. The configuration shown in FIG. 1 is merely an example of a configuration that can realize the processing described below, and any configuration that can realize processing equal to or higher than that is not limited to the configuration shown in FIG. A configuration may be adopted.

画像入力部101には、ラスタ表現の画像(入力画像)が入力される。入力画像はカラー画像、グレー画像、白黒画像のいずれでも構わない。また、入力画像は矩形画像でも構わないし、画像の一部をベクトル化したい場合には背景部を透過色に設定した画像等、切り出された領域が与えられても良い。そして画像入力部101は、この入力画像を後段のメッシュ生成部102に転送する。   A raster representation image (input image) is input to the image input unit 101. The input image may be a color image, a gray image, or a black and white image. Further, the input image may be a rectangular image, and when it is desired to vectorize a part of the image, a clipped region such as an image in which the background portion is set to a transparent color may be given. Then, the image input unit 101 transfers this input image to the subsequent mesh generation unit 102.

メッシュ生成部102は、入力画像中の特徴を表す曲線形状の特徴線を再現する3頂点曲線メッシュ群を生成することで、該入力画像を該3頂点曲線メッシュ群に分割する処理を行うものであり、特徴線検出部1021、特徴点抽出部1022、曲線メッシュ生成部1023を有する。   The mesh generation unit 102 performs a process of dividing the input image into the three-vertex curve mesh group by generating a three-vertex curve mesh group that reproduces a feature line having a curved shape representing the feature in the input image. A feature line detection unit 1021, a feature point extraction unit 1022, and a curved mesh generation unit 1023.

特徴線検出部1021は、入力画像中に、特徴を表す曲線形状の特徴線を構成する。本実施形態では、特徴線としてエッジ線を用いる。特徴線を構成するための処理は大きく分けて、エッジ検出処理と、エッジ線構成処理と、に分けられる。   The feature line detection unit 1021 configures a curve-shaped feature line representing the feature in the input image. In the present embodiment, edge lines are used as feature lines. The process for configuring the feature line is roughly divided into an edge detection process and an edge line configuration process.

先ず、エッジ線検出処理について説明する。エッジ線検出処理では先ず、入力画像からエッジを構成する画素(エッジ画素)を検出する。本実施形態では、キャニー法という既知の方法を用いてエッジ画素を検出するが、他の手法を用いてエッジ画素を検出するようにしても良い。また、キャニー法が効果的に機能するように、入力画像に対して明るさ調整、エッジ強調などの前処理を施しても構わない。   First, the edge line detection process will be described. In the edge line detection process, first, pixels (edge pixels) constituting an edge are detected from the input image. In the present embodiment, the edge pixel is detected using a known method called the Canny method, but the edge pixel may be detected using another method. In addition, preprocessing such as brightness adjustment and edge enhancement may be performed on the input image so that the Canny method functions effectively.

そして次に、エッジ線構成処理を行う。エッジ線構成処理では先ず、隣接するエッジ画素間を結ぶ線分を構成することで、エッジ線を再現する線分群を構成する。隣接するエッジ画素間を結んで線分群を構成する際に、注目エッジ画素の上、下、左、右にある4つのエッジ画素が隣接しているとみなす4連結接続がある。また、この4方向に加えて右上、右下、左上、左下にある4つのエッジ画素も隣接していると見なす8連結接続もある。本実施形態では8連結接続を用いるが、これは一例に過ぎない。   Then, an edge line configuration process is performed. In the edge line configuration process, first, a line segment that reproduces an edge line is configured by configuring a line segment that connects adjacent edge pixels. When a line segment group is formed by connecting adjacent edge pixels, there is a four-connection connection in which four edge pixels located above, below, left, and right of the target edge pixel are considered to be adjacent. Further, in addition to these four directions, there are eight connected connections in which four edge pixels on the upper right, lower right, upper left, and lower left are considered to be adjacent. In the present embodiment, eight linked connections are used, but this is only an example.

ここで、キャニー法を用いて検出したエッジ画素に対して8連結接続で隣接しているとみなせるエッジ画素間を結ぶと、エッジ線として望ましくない結果が得られる場合がある。このケースについて図2を用いて説明する。   Here, when edge pixels that can be considered to be adjacent to each other by 8-connection are connected to edge pixels detected using the Canny method, an undesirable result may be obtained as an edge line. This case will be described with reference to FIG.

図2(a)〜(d)には画像中のある領域を構成する画素群を示しており、1つの四角形が1つの画素を表している。また、斜線で示している四角形がエッジ画素を表しており、斜線がない四角形がエッジ画素以外の画素(非エッジ画素)を表している。   FIGS. 2A to 2D show a pixel group constituting a certain area in the image, and one square represents one pixel. In addition, a rectangle indicated by hatching represents an edge pixel, and a rectangle without hatching represents a pixel other than the edge pixel (non-edge pixel).

図2(a)に示したエッジ画素群について、8連結接続で隣接したエッジ画素を結ぶと、図2(b)に示すように、エッジ画素201、202、203を結ぶようなループが発生してしまう。図2(a)に示すようなエッジ画素が検出された場合、このようなループの発生を抑制する必要がある。そこで本実施形態では、8連結接続を行う前に、Hilditch細線化法という既知の手法を用いることで、この問題を解決する。図2(a)に示したエッジ画素群に対してHilditch細線化を行うと、図2(b)に示したエッジ画素201は非エッジ画素となる。その結果、図2(c)に示すように、エッジ画素(204〜207)がループのない1つのエッジ線によって結ばれることになる。   As shown in FIG. 2B, when the edge pixel group shown in FIG. 2A is connected to adjacent edge pixels by 8-connection, a loop that connects the edge pixels 201, 202, and 203 is generated. End up. When an edge pixel as shown in FIG. 2A is detected, it is necessary to suppress the occurrence of such a loop. Therefore, in the present embodiment, this problem is solved by using a known technique called the Hiditch thinning method before performing 8-connection. When the thinning is performed on the edge pixel group shown in FIG. 2A, the edge pixel 201 shown in FIG. 2B becomes a non-edge pixel. As a result, as shown in FIG. 2C, the edge pixels (204 to 207) are connected by one edge line having no loop.

このとき、図2(d)のエッジ画素208に示すように、複数のエッジ線が一か所に会合するようなパターンが発生することがある。このような場合は、会合するエッジ線を分断し、それぞれ独立したエッジ線として扱うこととする。図2(d)の例でいえばエッジ線は3本となる。   At this time, as shown by the edge pixel 208 in FIG. 2D, a pattern in which a plurality of edge lines meet at one place may occur. In such a case, the meeting edge lines are divided and treated as independent edge lines. In the example of FIG. 2D, there are three edge lines.

なお、特徴線にはエッジ線以外にも、例えば入力画像中のオブジェクトの領域の輪郭などが考えられる。ここでオブジェクトとは、文字や物体像等を指している。既に述べたように、入力画像の一部をベクトル化するという目的で、入力画像の一部が透過色に設定されている場合は、透過色と非透過色の境界に有る画素がオブジェクトの輪郭画素となる。オブジェクトの輪郭画素を1つの線分群にまとめる処理は、エッジ線構成処理と同様の処理に従って隣接する画素同士をつなぎ合わせることで実現できる。これは、入力画像内の異なる属性の領域の間の境界線にある画素についても同様である。   In addition to the edge line, for example, the contour of an object region in the input image can be considered as the feature line. Here, the object refers to a character, an object image, or the like. As already mentioned, for the purpose of vectorizing a part of the input image, if a part of the input image is set to transparent color, the pixel at the boundary between the transparent color and the non-transparent color is the outline of the object. It becomes a pixel. The process of combining the contour pixels of the object into one line segment group can be realized by connecting adjacent pixels according to the same process as the edge line configuration process. The same applies to pixels on the boundary line between regions having different attributes in the input image.

また、特徴線検出部1021は、入力画像を領域分割し、その境界線を特徴線としても良い。領域分割は最近傍法を用いたもの、EMアルゴリズムを利用したものなど、多くの手法が知られている。本実施形態では、濃度変化の基準として閾値を定めたうえでキャニー法を適用してエッジ画素を検出し、このエッジ画素を用いて特徴線を構成する。   The feature line detection unit 1021 may divide the input image into regions and use the boundary lines as feature lines. Many methods are known for area division, such as those using the nearest neighbor method and those using an EM algorithm. In the present embodiment, a threshold value is set as a reference for density change, an edge pixel is detected by applying the Canny method, and a feature line is configured using the edge pixel.

図1に戻って、次に、特徴点抽出部1022は、特徴線上のサンプル点のうち、最終的に用いるサンプル点を特徴点として決定する。特徴点抽出部1022の動作について、図3,4を用いて説明する。   Returning to FIG. 1, next, the feature point extraction unit 1022 determines a sample point to be finally used among the sample points on the feature line as a feature point. The operation of the feature point extraction unit 1022 will be described with reference to FIGS.

図3(a)には、入力画像中のある領域で構成された特徴線を示している。特徴点抽出部1022は、この特徴線上に複数のサンプル点を設定する。このサンプル点は上記のエッジ画素であっても良い。   FIG. 3A shows a characteristic line configured by a certain area in the input image. The feature point extraction unit 1022 sets a plurality of sample points on the feature line. This sample point may be the edge pixel described above.

ある区間における特徴線上のサンプル点群を図4(a)に示す。図4(a)において401〜405はサンプル点を示している。特徴線の端点を起点として隣接するサンプル点を順番に削除して近似関数を生成していく。   A sample point group on a characteristic line in a certain section is shown in FIG. In FIG. 4A, reference numerals 401 to 405 indicate sample points. Starting from the end point of the feature line, adjacent sample points are sequentially deleted to generate an approximation function.

先ず、図4(b)に示す如く、特徴線の端点であるサンプル点401を起点として、まずサンプル点402が削除され、サンプル点401とサンプル点403とを近似曲線の端点として、サンプル点402を近似するように近似曲線406を生成する。ここで近似関数は、3次のベジェ関数を最小自乗近似により生成しているが、B−スプライン関数など他の関数を用いても構わない。生成した近似曲線406と削除したサンプル点402との距離から誤差を計算し、誤差が閾値以内であれば次のサンプル点を削除する。本実施形態では、誤差の閾値は1画素としている。図4(b)では誤差が閾値以内であるとして、次の処理を説明する。   First, as shown in FIG. 4B, starting from the sample point 401 that is the end point of the feature line, the sample point 402 is first deleted, and the sample point 401 and the sample point 403 are used as end points of the approximate curve. An approximate curve 406 is generated so as to approximate. Here, the approximation function is a cubic Bezier function generated by least square approximation, but other functions such as a B-spline function may be used. An error is calculated from the distance between the generated approximate curve 406 and the deleted sample point 402. If the error is within the threshold, the next sample point is deleted. In the present embodiment, the error threshold is set to one pixel. In FIG. 4B, the next process will be described on the assumption that the error is within the threshold.

図4(c)に示す如く、次に隣接したサンプル点403を削除して、サンプル点401とサンプル点404を近似曲線の端点として、サンプル点402とサンプル点403を近似するように近似曲線407を生成する。近似曲線407とサンプル点402、403との誤差を計算する。図4(c)では誤差が閾値以内であるとして、次の処理を説明する。   As shown in FIG. 4C, the next adjacent sample point 403 is deleted and the approximate curve 407 is approximated so that the sample point 402 and the sample point 403 are approximated by using the sample point 401 and the sample point 404 as end points of the approximate curve. Is generated. The error between the approximate curve 407 and the sample points 402 and 403 is calculated. In FIG. 4C, the next process will be described on the assumption that the error is within the threshold.

図4(d)に示す如く、次に隣接したサンプル点404を削除して、サンプル点401とサンプル点405を近似曲線の端点としてサンプル点402、403、404を近似するように近似曲線408を生成する。近似曲線408とサンプル点402、403、404との誤差を計算する。ここで近似曲線408とサンプル点402、404との誤差が閾値を超えたとする。このとき近似曲線408は採用せず、前に生成された近似曲線407が有効な近似関数として採用される。   As shown in FIG. 4D, next, the adjacent sample point 404 is deleted, and the approximate curve 408 is approximated so that the sample points 402, 403, 404 are approximated with the sample point 401 and the sample point 405 as the end points of the approximate curve. Generate. The error between the approximate curve 408 and the sample points 402, 403, 404 is calculated. Here, it is assumed that the error between the approximate curve 408 and the sample points 402 and 404 exceeds the threshold value. At this time, the approximate curve 408 is not employed, and the previously generated approximate curve 407 is employed as an effective approximate function.

そしてこの場合は、図4(e)に示す如く、特徴線の端点であるサンプル点401を起点とし、サンプル点402、403は削除され、近似曲線407の端点であるサンプル点404を特徴点としてサンプリングする。すなわち、特徴線の端点であるサンプル点401とサンプル点405、特徴点としてサンプリングされたサンプル点404が第1の特徴点として採用される。ここで、サンプル点がより多いとき、サンプル点404を起点として同様の処理を繰り返して、特徴点を決定していく。以上の処理により、図2(c)のエッジ画素204、207のような特徴線の端点と図2(d)のエッジ画素208のような特徴線の交点に加え、特徴点が抽出される。図3(a)の特徴線に対し、最終的にサンプリングされた特徴点は、図3(b)の白丸301と星印302で示される通りである。もちろん画像の特徴を再現できるのであれば、特徴線の端点間を均等にサンプリングして特徴点とするなど他の方法を用いても構わない。   In this case, as shown in FIG. 4E, the sample point 401 that is the end point of the feature line is used as the starting point, the sample points 402 and 403 are deleted, and the sample point 404 that is the end point of the approximated curve 407 is used as the feature point. Sampling. That is, the sample point 401 and the sample point 405 which are the end points of the feature line, and the sample point 404 sampled as the feature point are employed as the first feature point. Here, when there are more sample points, the same process is repeated starting from the sample point 404 to determine the feature points. With the above processing, feature points are extracted in addition to the intersections of feature lines such as edge pixels 204 and 207 in FIG. 2C and feature lines such as edge pixel 208 in FIG. The feature points finally sampled with respect to the feature line in FIG. 3A are as indicated by white circles 301 and asterisks 302 in FIG. Of course, as long as the features of the image can be reproduced, other methods may be used such as sampling evenly between the end points of the feature lines to obtain the feature points.

図1に戻って、曲線メッシュ生成部1023は、特徴線を再現可能に、入力画像を3頂点曲線メッシュ群に分割する。曲線メッシュ生成部1023が行う処理について、同処理のフローチャートを示す図5を用いて説明する。もちろん、図5のフローチャートに示した各ステップにおける処理の主体は何れも曲線メッシュ生成部1023である。   Returning to FIG. 1, the curved mesh generation unit 1023 divides the input image into a three-vertex curved mesh group so that the feature line can be reproduced. Processing performed by the curved mesh generation unit 1023 will be described with reference to FIG. 5 showing a flowchart of the processing. Of course, the main subject of the processing in each step shown in the flowchart of FIG. 5 is the curved mesh generation unit 1023.

先ず、ステップS501では、曲線化対象とする辺を設定する。ここでは、特徴点抽出部1022によって決定された特徴点において、特徴線上で隣接している特徴点間を結ぶ線分を曲線化対象とする辺として設定する。   First, in step S501, a side to be curved is set. Here, in the feature point determined by the feature point extraction unit 1022, a line segment connecting the feature points adjacent on the feature line is set as an edge to be curved.

次に、ステップS502では、ステップS501で設定した辺を制約条件として制約付きドロネー三角形分割を利用することで、設定した辺がメッシュの辺となる3頂点直線メッシュ群を生成する。制約付きドロネー三角形分割は、点群と制約条件を与えると、与えられた点群を頂点とし、かつ制約条件を満たす直線メッシュを生成するアルゴリズムである。ここで制約条件とは点群の一部を結ぶ線分である。もちろん、設定した辺を再現する3頂点直線メッシュを生成することができるのであれば、他の方法を用いても良い。   Next, in step S502, by using the Delaunay triangulation with constraints using the side set in step S501 as a constraint condition, a three-vertex line mesh group in which the set side becomes a side of the mesh is generated. The constrained Delaunay triangulation is an algorithm that, when given a point group and a constraint condition, generates a straight line mesh with the given point group as a vertex and satisfying the constraint condition. Here, the constraint condition is a line segment connecting a part of the point group. Of course, other methods may be used as long as a three-vertex straight line mesh that reproduces the set side can be generated.

ステップS503では、曲線化対象となる全ての辺を曲線化したか否かを判断する。この判断の結果、曲線化対象となる全ての辺を曲線化したのであれば、図5のフローチャートに従った処理は完了し、曲線化対象となる辺のうちまだ曲線化していない辺が残っているのであれば、処理はステップS504に進む。   In step S503, it is determined whether or not all sides to be curved have been curved. As a result of the determination, if all the sides to be curved have been curved, the processing according to the flowchart of FIG. 5 is completed, and the sides that have not yet been curved remain among the sides to be curved. If yes, the process proceeds to step S504.

ステップS504では、曲線化対象となる辺のうちまだ曲線化してない辺を1つ選択する。そしてステップS505では、ステップS504で選択した辺を曲線化する。この曲線化では、特徴線を近似するようにメッシュの辺を曲線化する。本実施形態では特徴点抽出部1022で生成した3次のベジェ関数をそのままメッシュの辺として利用しているため、曲線を再計算する必要はない。図3(a)の特徴線に対してこのような3頂点曲線メッシュ群生成処理を行った結果を図6に示す。   In step S504, one side that has not yet been curved is selected from the sides to be curved. In step S505, the side selected in step S504 is curved. In this curving, the sides of the mesh are curved so as to approximate the feature line. In the present embodiment, the cubic Bezier function generated by the feature point extraction unit 1022 is used as it is as a mesh side, so there is no need to recalculate the curve. FIG. 6 shows the result of such a three-vertex curve mesh group generation process performed on the feature line of FIG.

ここまでの動作(処理)により、入力画像を、特徴線を表す3頂点曲線メッシュ群に分割することができる。なお、同様の目的を達成することができるのであれば、他の方法でもって「入力画像を、特徴線を表す3頂点曲線メッシュ群に分割」しても構わない。   Through the operation (processing) so far, the input image can be divided into a three-vertex curve mesh group representing a feature line. If the same purpose can be achieved, “the input image may be divided into three vertex curve mesh groups representing feature lines” by other methods.

図1に戻って、次に、最大色点数決定部103の動作について説明する。ここで、最大色点数決定部103の動作の説明を行うために、先に、3頂点曲線メッシュにおける形状情報と色情報とについて説明する。本実施形態では、それぞれの3頂点曲線メッシュを更に微小な3頂点からなるメッシュ(サブメッシュ)に分割し、分割したサブメッシュの頂点の画素の色を決定して、該頂点に割り当てる。レンダリングの際はそれらサブメッシュ内の色を双線形補間で補うことで、各メッシュの色を塗ることができる。   Returning to FIG. 1, the operation of the maximum color point number determination unit 103 will be described next. Here, in order to describe the operation of the maximum color point number determination unit 103, the shape information and color information in the three-vertex curve mesh will be described first. In the present embodiment, each three-vertex curve mesh is further divided into fine three-vertex meshes (sub-mesh), and the color of the pixel at the vertex of the divided sub-mesh is determined and assigned to the vertex. When rendering, the colors in each sub-mesh can be supplemented with bilinear interpolation to paint each mesh color.

ここで、各メッシュを構成するために必要な形状情報と色情報について説明する。図7(a)は、3頂点から成り且つ3頂点間が曲線で結ばれている(何れの辺も曲線で表現されている)メッシュ(3頂点曲線メッシュ)に係る形状情報を示す。701、702、703は3頂点曲線メッシュの頂点、704〜709は3頂点曲線メッシュの制御点である。この形状情報は、曲線メッシュ生成部1023が3頂点曲線メッシュを生成する際に生成する。   Here, shape information and color information necessary for configuring each mesh will be described. FIG. 7A shows shape information relating to a mesh (three-vertex curve mesh) composed of three vertices and connected between three vertices by a curve (all sides are expressed by a curve). Reference numerals 701, 702, and 703 denote vertices of the three-vertex curve mesh, and reference numerals 704 to 709 denote control points of the three-vertex curve mesh. This shape information is generated when the curved mesh generation unit 1023 generates a three-vertex curved mesh.

図7(b)は、図7(a)に示した3頂点曲線メッシュに係る色情報を示す。710〜724は3頂点曲線メッシュ内におけるサブメッシュの頂点(色点)であり、それぞれの色点は色情報を有する。ここでは色点はRGB値を色情報として有しているものとして説明するが、CMYKなど他の色空間における色情報を有するものとしても良い。また、入力画像がグレー画像である場合、色点は、対応する画素の輝度情報を色情報として保持することになる。色点は、ベジェパッチを規則的に分割することで導出される。ここでは色点として15点を用いているが、ベジェパッチの分割数を変更し、色点数を変更しても構わない。例えば、図8(a)では分割数が1であり、色点の数は3となる。また図8(b)、(c)、(d)ではそれぞれ、分割数が2、4、8であり、色点の数は6、15、45点となる。   FIG. 7B shows color information relating to the three-vertex curve mesh shown in FIG. Reference numerals 710 to 724 denote vertices (color points) of the sub-mesh in the three-vertex curve mesh, and each color point has color information. Here, the color point is described as having RGB values as color information. However, the color point may have color information in another color space such as CMYK. In addition, when the input image is a gray image, the color point holds the luminance information of the corresponding pixel as color information. The color point is derived by regularly dividing the Bezier patch. Here, 15 points are used as color points. However, the number of Bezier patches may be changed to change the number of color points. For example, in FIG. 8A, the number of divisions is 1, and the number of color points is 3. In FIGS. 8B, 8C, and 8D, the number of divisions is 2, 4, and 8, and the number of color points is 6, 15, and 45, respectively.

なお、分割数は2の冪乗となっており、この冪数を分割指数と呼称したとすると、分割数が1、2、4、8、16、32、64と増えるのにつれて、分割指数はそれぞれ0、1、2、3、4、5、6と対応している。この分割指数と分割数、さらには、色点数の対応を図11に示す。図11において、分割指数を非負整数kとすると、分割数nはn=2、色点数NはN=(n+1)(n+2)/2となっている。 The number of divisions is a power of 2. If this number is called a division index, the division index increases as the number of divisions increases to 1, 2, 4, 8, 16, 32, 64. Corresponding to 0, 1, 2, 3, 4, 5, 6 respectively. FIG. 11 shows the correspondence between the division index, the number of divisions, and the number of color points. In FIG. 11, when the division index is a non-negative integer k, the division number n is n = 2 k and the color point number N is N = (n + 1) (n + 2) / 2.

ここで、1つの3頂点曲線メッシュにおける色点の数は、入力画像において該3頂点曲線メッシュ内に含まれている部分画像における色変化の複雑さに応じて変化させるのが望ましい。すなわち、色変化がより複雑な3頂点曲線メッシュに対しては、より多くの色点を設定し、色変化が比較的複雑でない(単純な)部分画像に対応する3頂点曲線メッシュに対しては、最低限の数の色点を設定することが望ましい。このような3頂点曲線メッシュ毎の適応的な色点数の制御は、画質上、そしてデータ容量上望ましい。以下では、このような、3頂点曲線メッシュごとの色点数を適応的に決定しながら色点を設定する構成及び方法について説明する。   Here, it is desirable that the number of color points in one three-vertex curve mesh is changed according to the complexity of color change in the partial image included in the three-vertex curve mesh in the input image. That is, for a three-vertex curve mesh that has a more complex color change, set more color points, and for a three-vertex curve mesh that corresponds to a partial image whose color change is relatively complex (simple). It is desirable to set a minimum number of color points. Such adaptive control of the number of color points for each three-vertex curve mesh is desirable in terms of image quality and data capacity. Hereinafter, a configuration and a method for setting color points while adaptively determining the number of color points for each three-vertex curve mesh will be described.

最大色点数決定部103は、それぞれの3頂点曲線メッシュに対して、該3頂点曲線メッシュ内の色を表現する色点の最大数である最大色点数N(初期値)を設定する。最大色点数Nの設定方法には様々な方法が考え得る。本実施形態では、それぞれの3頂点曲線メッシュに共通の最大色点数Nとして予め定められた数を設定する。以下では具体的な説明を行うためにN=45とするが、Nが他の数であっても、以下の説明は同様に適用可能である。なお、最大色点数N=45とした場合、図8(d)に示す如く、分割数n=8、分割指数k=3となる(図11参照)。図7(c)は、色点数が45の場合の3頂点曲線メッシュの色情報を示す。図7(b)と同様に、図中の色点730〜774について、それぞれ色情報を持つ。ただし、図7(c)中の45点全てに番号を付与すると図が煩雑になるため、図7(b)に比し大きな図として表現し、かつ、そのうちの27点のみに参照番号を付与してある。   The maximum color point number determination unit 103 sets, for each three-vertex curve mesh, a maximum color point number N (initial value), which is the maximum number of color points that represent colors in the three-vertex curve mesh. Various methods can be considered as a method of setting the maximum number N of color points. In the present embodiment, a predetermined number is set as the maximum number N of color points common to the three vertex curve meshes. In the following, N = 45 for specific description, but the following description can be similarly applied even when N is another number. When the maximum number of color points N = 45, as shown in FIG. 8D, the division number n = 8 and the division index k = 3 (see FIG. 11). FIG. 7C shows the color information of the three-vertex curve mesh when the number of color points is 45. Similarly to FIG. 7B, the color points 730 to 774 in the figure each have color information. However, if numbers are assigned to all 45 points in FIG. 7 (c), the figure becomes complicated, so it is expressed as a larger figure than FIG. 7 (b), and reference numbers are assigned only to 27 of them. It is.

次に、色点候補位置設定部104は、それぞれの3頂点曲線メッシュについて、該3頂点曲線メッシュ内のそれぞれの色点(45個)の位置(座標)を求める。この処理のために、先に述べた、P1、P2、P3を頂点とする3頂点曲線メッシュ(3次のベジェパッチ)内の点の位置を規定するための式である上記の式1、式2を用いる。図7(a)を例にとると、3頂点曲線メッシュの頂点701、702、703がそれぞれP1、P2、P3であり、それらの座標が、それぞれp1、p2、p3である。また、3頂点曲線メッシュの制御点704〜709の座標が、それぞれ順にc1、c2、c3、c4、c5、c6である。式1におけるパッチのパラメータs、t、uを、これらのパラメータの値が取り得る範囲を制限している条件内で、それぞれ変化させた組み合わせに応じて求まるB(s,t,u)を各色点の位置の座標とする。   Next, the color point candidate position setting unit 104 obtains the position (coordinates) of each color point (45 pieces) in the three-vertex curve mesh for each three-vertex curve mesh. For this processing, the above-described formulas 1 and 2 are formulas for defining the positions of the points in the three-vertex curve mesh (third-order Bezier patch) having vertices P1, P2 and P3 as described above. Is used. Taking FIG. 7A as an example, the vertices 701, 702, and 703 of the three-vertex curve mesh are P1, P2, and P3, respectively, and their coordinates are p1, p2, and p3, respectively. In addition, the coordinates of the control points 704 to 709 of the three-vertex curve mesh are c1, c2, c3, c4, c5, and c6, respectively. B (s, t, u) determined according to the respective combinations of the parameters s, t, u of the patch in Equation 1 that are changed within the range limiting the range of values of these parameters. The coordinates of the point position.

例えば、図7(b)の場合、即ち、分割数が4の場合であれば、s、t、uの値をそれぞれ、それらのとりうる範囲である0〜1を4等分した値である1/4ずつ変化させて、かつ、s+t+u=1の制限をみたす組み合わせに応じてB(s,t,u)を求める。   For example, in the case of FIG. 7B, that is, when the number of divisions is 4, the values of s, t, and u are values obtained by equally dividing the possible range 0 to 1 into four. B (s, t, u) is obtained according to a combination that changes by ¼ and meets the limit of s + t + u = 1.

B(1,0,0)が色点710の位置(座標)となり、B(3/4,1/4,0)とB(3/4,0,1/4)がそれぞれ色点711と712の位置(座標)となる。また、B(1/2,1/2,0)、B(1/2、1/4、1/4)、B(1/2,0,1/2)がそれぞれ色点713、714、715の位置(座標)となる。以下、同様に、色点716、717、718、719の位置(座標)は、B(1/4,3/4,0)、B(1/4,1/2,1/4)、B(1/4,1/4,1/2)、B(1/4,0,3/4)となる。また、色点720、721、722、723、724の位置(座標)は、B(0,1,0)、B(0,3/4,1/4)、B(0,1/2,1/2)、B(0,1/4,3/4)、B(0,0,1)となる。   B (1, 0, 0) is the position (coordinate) of the color point 710, and B (3/4, 1/4, 0) and B (3/4, 0, 1/4) are the color point 711 and It becomes the position (coordinates) 712. Also, B (1/2, 1/2, 0), B (1/2, 1/4, 1/4), and B (1/2, 0, 1/2) are color points 713, 714, The position (coordinates) of 715 is obtained. Similarly, the positions (coordinates) of the color points 716, 717, 718, 719 are B (1/4, 3/4, 0), B (1/4, 1/2, 1/4), B (1/4, 1/4, 1/2) and B (1/4, 0, 3/4). The positions (coordinates) of the color points 720, 721, 722, 723, and 724 are B (0, 1, 0), B (0, 3/4, 1/4), B (0, 1/2, 1/2), B (0, 1/4, 3/4), and B (0, 0, 1).

ところで、最大色点数N=45の場合は、図7(c)に対応しており、分割数n=8であるから、s、t、uの値は1/8ずつ変化させることになる。色点730、731、733、736、740、745、751、758、766のそれぞれの位置(座標)は、u=0、s=1−(i/8)、t=i/8、但し、i=0,1,2,・・・,8でのB(s,t,0)として求まる。色点730、732、735、739、744、750、757、765、774のそれぞれの位置(座標)なら、t=0、s=1−(i/8)、u=i/8、但し、i=0,1,2,・・・,8でのB(s、0、u)となる。色点766、767、768、769、770、771、772、773、774の位置(座標)なら、s=0、t=1−(i/8)、u=i/8、但し、i=0,1,2,・・・,8でのB(0,t,u)である。また、色点733、734,735の3点であれば、いずれの位置(座標)も、s=3/4であって、それぞれ、B(3/4,1/4,0)、B(3/4,1/8,1/8)、B(3/4,0,1/4)である。色点753の位置(座標)であれば、色点751の位置(座標)がB(1/4,3/4,0)、色点757の位置(座標)がB(1/4,0,3/4)であるのに対し、B(1/4,1/2,1/4)となる。色点763の位置(座標)であれば、色点758の位置(座標)がB(1/8,7/8,0)、色点765の位置(座標)がB(1/8,0,7/8)であるのに対し、B(1/8,1/4,5/8)となる。   Incidentally, when the maximum number of color points N = 45 corresponds to FIG. 7C and the number of divisions n = 8, the values of s, t, and u are changed by 1/8. The respective positions (coordinates) of the color points 730, 731, 733, 736, 740, 745, 751, 758, 766 are u = 0, s = 1- (i / 8), t = i / 8, It is obtained as B (s, t, 0) at i = 0, 1, 2,. If the positions (coordinates) of the color points 730, 732, 735, 739, 744, 750, 757, 765, 774 are t = 0, s = 1- (i / 8), u = i / 8, B (s, 0, u) at i = 0, 1, 2,. For the positions (coordinates) of the color points 766, 767, 768, 769, 770, 771, 772, 773, 774, s = 0, t = 1- (i / 8), u = i / 8, where i = B (0, t, u) at 0, 1, 2,. In addition, if there are three color points 733, 734, and 735, all the positions (coordinates) are s = 3/4, and B (3/4, 1/4, 0), B ( 3/4, 1/8, 1/8) and B (3/4, 0, 1/4). If it is the position (coordinate) of the color point 753, the position (coordinate) of the color point 751 is B (1/4, 3/4, 0), and the position (coordinate) of the color point 757 is B (1/4, 0). , 3/4) but B (1/4, 1/2, 1/4). If it is the position (coordinate) of the color point 763, the position (coordinate) of the color point 758 is B (1/8, 7/8, 0), and the position (coordinate) of the color point 765 is B (1/8, 0). , 7/8) and B (1/8, 1/4, 5/8).

かくの如く、一般に分割数がnである場合、s、t、uの値をそれぞれ0から1まで1/nずつ変化させ、s+t+u=1の制限をみたす、N=(n+1)(n+2)/2通りの組み合わせに応じてB(s,t,u)を求めることで、(n+1)(n+2)/2個のそれぞれの色点の位置(座標)を求めることができる。s=1−(j/n)、但し、j=0,1,2,・・・,n、のそれぞれのjに対し、t+u=j/nをみたすtとuの組み合わせは、1+(n−j)通りある。即ち、B(1−(j/n),t,u)は1+(n−j)個ある。結局、分割数nのときは、s+t+u=1を満たすs,t,uの組み合わせは、(n+1)+n+(n−1)+(n−2)+・・・+2+1=(n+1)(n+2)/2=N通り存在する。これら(n+1)(n+2)/2=N個のB(s,t,u)が、最大色点数N=(n+1)(n+2)/2個の各色点の座標を与える。   Thus, in general, when the number of divisions is n, the values of s, t, and u are each changed by 1 / n from 0 to 1, and the limit of s + t + u = 1 is satisfied. N = (n + 1) (n + 2) / By obtaining B (s, t, u) according to two combinations, the positions (coordinates) of (n + 1) (n + 2) / 2 color points can be obtained. s = 1− (j / n), where for j = 0, 1, 2,..., n, the combination of t and u satisfying t + u = j / n is 1+ (n -J) There are streets. That is, there are 1+ (n−j) B (1− (j / n), t, u). After all, when the number of divisions is n, the combination of s, t, u satisfying s + t + u = 1 is (n + 1) + n + (n−1) + (n−2) +... + 2 + 1 = (n + 1) (n + 2) / 2 = N ways exist. These (n + 1) (n + 2) / 2 = N B (s, t, u) give the coordinates of the maximum number of color points N = (n + 1) (n + 2) / 2.

なお、3頂点曲線メッシュは必ずしも、全ての頂点間が曲線であるわけではなく、一般的には、直線となる頂点間が存在する。例えば、頂点P1と頂点P2との間が直線の場合には、上記の図7(a)において、頂点701(P1)と頂点702(P2)とを結ぶ辺が直線となる。この場合には制御点704と制御点705がこの直線上にあり、それらの座標c1、c2がそれぞれ
c1=(2p1+p2)/3 (式3)
c2=(p1+2p2)/3 (式4)
であるとして、上述の(式1)、(式2)により求めれば良い。
It should be noted that the three-vertex curve mesh does not necessarily have a curve between all vertices, and generally there exists a vertex that is a straight line. For example, if the vertex P1 and the vertex P2 are a straight line, the side connecting the vertex 701 (P1) and the vertex 702 (P2) in FIG. 7A is a straight line. In this case, the control point 704 and the control point 705 are on this straight line, and their coordinates c1 and c2 are respectively c1 = (2p1 + p2) / 3 (Formula 3)
c2 = (p1 + 2p2) / 3 (Formula 4)
As described above, the above-described (Expression 1) and (Expression 2) may be used.

加えて、頂点P3と頂点P1との間も直線の場合、即ち、頂点P2と頂点P3との間のみが曲線である場合には、さらに制御点708と制御点709がこの頂点P3と頂点P1との間の直線上にあり、それらの座標c5、c6がそれぞれ
c5=(2p3+p1)/3 (式5)
c6=(p3+2p1)/3 (式6)
であるとして、上述の(式1)、(式2)により求めれば良い。
In addition, when the vertex P3 and the vertex P1 are also straight lines, that is, when only the vertex P2 and the vertex P3 are curved, the control point 708 and the control point 709 are further connected to the vertex P3 and the vertex P1. The coordinates c5 and c6 are respectively c5 = (2p3 + p1) / 3 (Formula 5)
c6 = (p3 + 2p1) / 3 (Formula 6)
As described above, the above-described (Expression 1) and (Expression 2) may be used.

さらに、頂点P2と頂点P3との間もまた直線の場合、即ち、全ての頂点間が直線である場合には、制御点706と制御点707が、頂点P2と頂点P3との間の直線上にあり、それらの座標c3、c4がそれぞれ
c3=(2p2+p3)/3 (式7)
c4=(p2+2p3)/3 (式8)
であるとして、上述の(式1)、(式2)により求めれば良い。しかし、上述の(式1)、(式2)に、(式3)〜(式8)の条件を加え、かつ、s+t+u=1であること等を基に(式1)、(式2)を簡素化すると、
B(s,t,u)=s・p1+t・p2+u・p3 (式9)
が得られるので、3頂点曲線メッシュの全ての頂点間が直線である場合には、上記(式9)に基づいて各色点の位置(座標)を求めても良い。この場合には、上記(式1)、(式2)を用いるよりも、はるかに少ない演算量で各色点の位置(座標)を求めることができる。
Further, when the vertex P2 and the vertex P3 are also straight lines, that is, when all the vertices are straight lines, the control point 706 and the control point 707 are on the straight line between the vertex P2 and the vertex P3. And their coordinates c3 and c4 are respectively c3 = (2p2 + p3) / 3 (formula 7)
c4 = (p2 + 2p3) / 3 (Formula 8)
As described above, the above-described (Expression 1) and (Expression 2) may be used. However, (Formula 1) and (Formula 2) are added based on the conditions of (Formula 3) to (Formula 8) to the above (Formula 1) and (Formula 2) and s + t + u = 1. Simplify
B (s, t, u) = s.p1 + t.p2 + u.p3 (Formula 9)
Therefore, when all the vertices of the three-vertex curve mesh are straight lines, the position (coordinate) of each color point may be obtained based on the above (Equation 9). In this case, the position (coordinates) of each color point can be obtained with a much smaller calculation amount than when using the above (Expression 1) and (Expression 2).

図1に戻って、次に色情報抽出部105は、それぞれの3頂点曲線メッシュについて、該3頂点曲線メッシュ内のそれぞれの色点の色情報を取得する。3頂点曲線メッシュにおける45個の色点のそれぞれの座標は色点候補位置設定部104が求めたのであるから、色情報抽出部105は、入力画像において該色点の座標における画素値を該色点の色情報として取得する。なお、色点候補位置設定部104が求めた座標は必ずしも整数値とはならずに、一般には入力画像中の画素の中心位置からずれる。この画素の中心位置からのずれに対しては、いわゆる最近傍(nearest neighbor)法と称される補間法、即ち、座標の小数部を四捨五入して整数化し、該当する位置の入力画像の画素の画素値をもって、該色点の色情報とすることで対処する。なお、補間法は、最近傍法に限らない。座標の小数部の示す入力画像上の位置を取り囲む周囲4画素の画素値を用いて、公知の双線形(bi-linear)補間法により求めた補間値をもって該色点の色情報としてもよい。また近傍16画素を用いた公知のbi-cubic補間法による補間値を用いてももちろん良い。最近傍法よりは、双線形補間法、双線形補間法よりはbi-cubic補間法の方が、より高画質であるとされているが、一方で、計算量はこの順で増加し、画質と演算量の間にはトレードオフがある。   Returning to FIG. 1, the color information extraction unit 105 next acquires color information of each color point in the three-vertex curve mesh for each three-vertex curve mesh. Since the coordinates of the 45 color points in the three-vertex curve mesh are obtained by the color point candidate position setting unit 104, the color information extraction unit 105 converts the pixel values at the coordinates of the color points in the input image into the color. Acquired as point color information. Note that the coordinates obtained by the color point candidate position setting unit 104 are not necessarily integer values, but generally deviate from the center position of the pixel in the input image. For the deviation from the center position of this pixel, an interpolation method called a so-called nearest neighbor method, that is, rounding off the decimal part of the coordinates to an integer, the pixel of the input image at the corresponding position is converted into an integer. A pixel value is used as color information of the color point. Note that the interpolation method is not limited to the nearest neighbor method. Using the pixel values of the surrounding four pixels surrounding the position on the input image indicated by the decimal part of the coordinates, the color information of the color point may be obtained by using an interpolation value obtained by a known bi-linear interpolation method. Of course, an interpolation value obtained by a known bi-cubic interpolation method using 16 neighboring pixels may be used. Bilinear interpolation and bi-cubic interpolation are considered to have higher image quality than bilateral interpolation, but the amount of computation increases in this order. There is a trade-off between the calculation amount and the calculation amount.

次に、許容値設定部106の動作を説明する。上述のように、3頂点曲線メッシュにおける色点は、その数が少なければデータ容量は少なくて済むが、一方で3頂点曲線メッシュ内に含まれている画像の色変化の複雑さをなるべく忠実に再現できるようにするには多数の色点をもって表現する必要がある。このため、色点数を必要以上に削減すると、再現画像は元の画像に比して画質劣化が大きくなる。許容値設定部106は、色点数の削減を図る上で、必要以上の削減を抑えるための基準とする値としての誤差許容値を定める。本実施形態では、許容値設定部106は、最大色点数における色点一点当たりの誤差値の許容閾値を固定値Thとして設定する。例えば、Th=1.0とする。この値は、以降の許容色点情報生成部107内の判定部1074で用いられることになる。   Next, the operation of the allowable value setting unit 106 will be described. As described above, if the number of color points in the three-vertex curve mesh is small, the data capacity is small. On the other hand, the color change complexity of the image included in the three-vertex curve mesh is as faithful as possible. In order to be able to reproduce, it is necessary to express with a large number of color points. For this reason, if the number of color points is reduced more than necessary, the reproduced image has a greater image quality degradation than the original image. The allowable value setting unit 106 determines an allowable error value as a reference value for suppressing an unnecessary reduction in reducing the number of color points. In the present embodiment, the allowable value setting unit 106 sets the allowable threshold value of the error value per color point in the maximum number of color points as the fixed value Th. For example, Th = 1.0. This value is used by the determination unit 1074 in the subsequent allowable color point information generation unit 107.

許容色点情報生成部107は、3頂点曲線メッシュごとに、該3頂点曲線メッシュに設定すべき色点を確定するものであり、色点候補削減部1071、色情報補間部1072、誤差生成部1073、判定部1074、色点情報確定部1075、を有する。以下では、1つの3頂点曲線メッシュに対する許容色点情報生成部107の動作について説明する。然るに、実際には、許容色点情報生成部107は、以下に説明する処理をそれぞれの3頂点曲線メッシュについて行うことになる。   The permissible color point information generation unit 107 determines a color point to be set for the three-vertex curve mesh for each three-vertex curve mesh, and includes a color point candidate reduction unit 1071, a color information interpolation unit 1072, and an error generation unit. 1073, a determination unit 1074, and a color point information determination unit 1075. Hereinafter, the operation of the allowable color point information generation unit 107 for one three-vertex curve mesh will be described. However, in practice, the allowable color point information generation unit 107 performs the processing described below on each of the three vertex curve meshes.

色点候補削減部1071は、最大色点数決定部103が設定した最大色点数Nに対応する分割指数をkとすると、分割指数(k−1)に対応する数の色点の3頂点曲線メッシュ内の位置を、色点候補位置設定部104と同様にして求める。例えばN=45の場合、上記の通りk=3であるから、k=2に対応する15個の色点(図7(b)に示した色点710〜724)のそれぞれの位置を求める。そして、色点候補削減部1071は、分割指数kに対応する数(最大色点数)の色点のうち、分割指数(k−1)に対応する数の色点と、その位置が異なる色点を、削減候補色点として決定する。なお、「色点間で位置が同じ」とは、「全く同じ」、ということに限るものではなく、位置の差が許容範囲内であれば「同じ」として構わない。色点候補削減部1071の動作を、図10を例にとり説明する。図10では説明を簡単にするために頂点間の辺を直線としているが、頂点間の辺が曲線であっても、以下の説明は同様に適用することができる。   The color point candidate reducing unit 1071 is a three-vertex curve mesh of the number of color points corresponding to the division index (k−1), where k is the division index corresponding to the maximum number of color points N set by the maximum color point number determination unit 103. Is obtained in the same manner as the color point candidate position setting unit 104. For example, when N = 45, k = 3 as described above. Therefore, the positions of 15 color points (color points 710 to 724 shown in FIG. 7B) corresponding to k = 2 are obtained. The color point candidate reduction unit 1071 then differs from the number of color points corresponding to the division index (k−1) out of the number of color points corresponding to the division index k (maximum number of color points) to the color points whose positions are different. Are determined as reduction candidate color points. Note that “the position is the same between the color points” is not limited to “exactly the same”, but may be “the same” as long as the position difference is within an allowable range. The operation of the color point candidate reduction unit 1071 will be described using FIG. 10 as an example. In FIG. 10, the sides between the vertices are straight lines for simplicity of explanation, but the following explanation can be applied in the same manner even if the sides between the vertices are curves.

図10(a)は、分割数=1である場合、すなわち分割指数が0である場合における色点を示しており、この場合、色点の数は3となる。図10(b)は、分割数=2である場合、すなわち分割指数が1である場合における色点を示しており、この場合、色点の数は6となる。図10(c)は、分割数=4である場合、すなわち分割指数が2である場合における色点を示しており、この場合、色点の数は15となる。図10(d)は、分割数=8である場合、すなわち分割指数が3である場合における色点を示しており、この場合、色点の数は45となる。なお、図10(d)は、図10(a)〜(c)に比して大きく表現してある。これは、図7(c)の場合と同様に、45点もの色点を図中に表記すると、図10(a)〜(c)の色点の表現に比し、図が込み入ったものとなり、見づらくなってしまわないようにするためである。   FIG. 10A shows color points when the number of divisions = 1, that is, when the division index is 0. In this case, the number of color points is three. FIG. 10B shows color points when the number of divisions = 2, that is, when the division index is 1. In this case, the number of color points is six. FIG. 10C shows color points when the number of divisions = 4, that is, when the division index is 2. In this case, the number of color points is 15. FIG. 10D shows the color points when the number of divisions is 8, that is, when the division index is 3, and in this case, the number of color points is 45. In addition, FIG.10 (d) is expressed large compared with Fig.10 (a)-(c). As in the case of FIG. 7C, when 45 color points are shown in the figure, the figure is more complicated than the expression of the color points in FIGS. 10A to 10C. This is to prevent it from becoming difficult to see.

ここで、図10(a)に示す如く、分割数=1の場合における3個の色点は白丸で示している。図10(b)では、分割数=2の場合における6個の色点を示しているが、図10(a)に示した色点と同じ色点は白丸で示しており、図10(a)に示した色点と異なる色点は二重丸で示している。図10(c)では、分割数=4の場合における15個の色点を示しているが、図10(a)に示した色点と同じ色点は白丸、図10(b)に示した色点と同じ色点は二重丸で示しており、図10(a)、(b)に示した色点と異なる色点は黒丸で示している。図10(d)では、分割数=8である場合における45個の色点を示しているが、図10(a)に示した色点と同じ色点は白丸、図10(b)に示した色点と同じ色点は二重丸、図10(c)に示した色点と同じ色点は黒丸で示しており、図10(a)、(b)、(c)に示した色点と異なる色点は星形で示している。   Here, as shown in FIG. 10A, the three color points when the number of divisions = 1 are indicated by white circles. FIG. 10B shows six color points in the case where the number of divisions = 2, but the same color points as those shown in FIG. 10A are indicated by white circles, and FIG. Color points different from the color points shown in FIG. FIG. 10 (c) shows 15 color points when the number of divisions = 4. The same color points as those shown in FIG. 10 (a) are shown as white circles, and FIG. 10 (b). The same color point as the color point is indicated by a double circle, and the color point different from the color point shown in FIGS. 10A and 10B is indicated by a black circle. FIG. 10D shows 45 color points when the number of divisions is 8, but the same color points as those shown in FIG. 10A are indicated by white circles and FIG. 10B. The same color point as that shown in FIG. 10C is indicated by a double circle, and the same color point as that shown in FIG. 10C is indicated by a black circle. The colors shown in FIG. 10A, FIG. 10B, and FIG. Color points that are different from the dots are shown as stars.

上記の通り、色点候補削減部1071は、最大色点数決定部103が設定した最大色点数Nに対応する分割指数をkとすると、分割指数kに対応する数(最大色点数)の色点のうち、分割指数(k−1)に対応する数の色点と、その位置が異なる色点を、削減候補色点として決定する。最大色点数N=45の場合、3頂点曲線メッシュにおける45個の色点の配置は図10(d)のようになり、分割指数=2に対応する15個の色点の3頂点曲線メッシュ内における配置は図10(c)のようになり、図10(d)に示した色点のうち図10(c)に示した色点と位置が異なる色点は、色点1005や色点1006など、星形で示した色点であるから、この場合、色点候補削減部1071は、星形の色点を削減候補色点として決定することになる。   As described above, the color point candidate reducing unit 1071 has the number of color points corresponding to the division index k (maximum number of color points), where k is the division index corresponding to the maximum color point number N set by the maximum color point number determination unit 103. Among them, the number of color points corresponding to the division index (k−1) and the color points having different positions are determined as reduction candidate color points. In the case of the maximum number of color points N = 45, the arrangement of 45 color points in the 3-vertex curve mesh is as shown in FIG. 10 (d), and within the 15-vertex curve mesh of 15 color points corresponding to the division index = 2. The arrangement in FIG. 10C is as shown in FIG. 10C. Among the color points shown in FIG. 10D, the color points whose positions are different from those shown in FIG. 10C are the color points 1005 and 1006. In this case, the color point candidate reduction unit 1071 determines a star-shaped color point as a reduction candidate color point.

なお、詳しくは後述するが、本実施形態では、削減候補色点として決定した色点を削除しても3頂点曲線メッシュの画質が基準以上であると判定部1074が判断した場合には、色点候補削減部1071は、削減候補色点として決定しなかった色点から更に削減候補色点を決定する。例えば、図10(d)に示す如く、3頂点曲線メッシュに45個の色点を設定した状態で色点候補削減部1071が処理を開始し、その結果、星形の色点を削除しても3頂点曲線メッシュの画質が基準以上であると判定部1074が判断した場合には、この星形の色点を削除し、その結果、3頂点曲線メッシュ上の色点は図10(c)に示す如く、15個となる。そして色点候補削減部1071は、同様の処理を行うことで、この15個の色点のうち、図10(b)の6個の色点と位置が異なる色点(黒丸の色点)を削減候補色点として決定する。そして、黒丸の色点を削除しても3頂点曲線メッシュの画質が基準以上であると判定部1074が判断した場合には、この黒丸の色点を削除し、その結果、3頂点曲線メッシュ上の色点は図10(b)に示す如く、6個となる。   Although details will be described later, in this embodiment, if the determination unit 1074 determines that the image quality of the three-vertex curve mesh is higher than the reference even if the color point determined as the reduction candidate color point is deleted, The point candidate reduction unit 1071 further determines reduction candidate color points from color points that have not been determined as reduction candidate color points. For example, as shown in FIG. 10 (d), the color point candidate reducing unit 1071 starts processing with 45 color points set in the three-vertex curve mesh, and as a result, the star-shaped color points are deleted. If the determination unit 1074 determines that the image quality of the three-vertex curve mesh is equal to or higher than the reference, the star-shaped color point is deleted, and as a result, the color points on the three-vertex curve mesh are shown in FIG. As shown in FIG. Then, the color point candidate reduction unit 1071 performs the same processing, so that among the 15 color points, the color points (black circle color points) whose positions are different from the 6 color points in FIG. It is determined as a reduction candidate color point. If the determination unit 1074 determines that the image quality of the three-vertex curve mesh is higher than the standard even if the black circle color point is deleted, the black circle color point is deleted, and as a result, the three-vertex curve mesh As shown in FIG. 10B, there are six color points.

図1に戻って、色情報補間部1072は、3頂点曲線メッシュにおいて色点候補削減部1071が削減候補色点として決定した色点の色情報を、該3頂点曲線メッシュにおいて削減候補色点として決定されなかった色点の色情報から補間により求める。例えば、図10(d)において星形の色点を削減候補色点として決定した場合、星形の色点の色情報を、白丸の色点、二重丸の色点、黒丸の色点等の色情報を用いて補間により求める(例えば、それぞれの星型の色点に対し、白丸の色点、二重丸の色点、黒丸の色点の中の最も近い2つの色点の色情報の平均値を、該星形の色点の色情報とする)。より具体的には、図10(d)の場合、色点1005の色情報は、色点1001の色情報と色点1004の色情報との平均値とし、色点1006の色情報は、色点1004の色情報と色点1003の色情報との平均値とする。これは、色点1005は、色点1001と色点1004との間の辺上の中間にあり、色点1006は、色点1004と色点1003との間の辺の中間にあることから、容易に理解できる。   Returning to FIG. 1, the color information interpolation unit 1072 uses the color point color information determined by the color point candidate reduction unit 1071 as the reduction candidate color point in the three-vertex curve mesh as the reduction candidate color point in the three-vertex curve mesh. It is obtained by interpolation from the color information of the color points that have not been determined. For example, when the star-shaped color point is determined as the reduction candidate color point in FIG. 10D, the color information of the star-shaped color point includes the white circle color point, the double circle color point, the black circle color point, and the like. (For example, for each star color point, the color information of the two closest color points among the white circle color point, double circle color point, and black circle color point) Is the color information of the star-shaped color point). More specifically, in the case of FIG. 10D, the color information of the color point 1005 is an average value of the color information of the color point 1001 and the color information of the color point 1004, and the color information of the color point 1006 is the color information. The average value of the color information of the point 1004 and the color information of the color point 1003 is set. This is because the color point 1005 is in the middle of the side between the color point 1001 and the color point 1004, and the color point 1006 is in the middle of the side between the color point 1004 and the color point 1003. Easy to understand.

また、星型の色点に加えて、黒丸の色点も削減候補色点と決定した場合には、黒丸の色点の色情報を、削減候補色点とはなっていない白丸の色点の色情報、二重丸の色点の色情報から補間して求める(例えば、それぞれの黒丸の色点に対し、白丸の色点、二重丸の色点の中の最も近い2つの色点の色情報の平均値を、該黒丸の色点の色情報とする)。図10(c)に着目すると、例えば、色点1004の色情報は、色点1001の色情報と色点1003の色情報との平均値とする。これは、色点1004は、色点1001と色点1003との間の辺上の中間にあることから、容易に理解できる。黒丸の色点の色情報を求めた後は、白丸の色点、二重丸の色点に加え、補間により色情報を求めた黒丸の色点をも用いて、上述の方法と同様に星形の色点の色情報を補間により求める。   In addition to the star-shaped color point, when the black circle color point is also determined as the reduction candidate color point, the color information of the black circle color point is used for the white circle color point that is not the reduction candidate color point. It is obtained by interpolation from the color information and the color information of the double-circle color point (for example, for each black-circle color point, the two round-point color points of the white-circle and double-circle color points The average value of the color information is set as the color information of the color point of the black circle). Focusing on FIG. 10C, for example, the color information of the color point 1004 is an average value of the color information of the color point 1001 and the color information of the color point 1003. This can be easily understood because the color point 1004 is in the middle of the side between the color point 1001 and the color point 1003. After obtaining the color information of the black circle color point, in addition to the white circle color point and the double circle color point, the black circle color point for which the color information was obtained by interpolation is also used. The color information of the color point of the shape is obtained by interpolation.

以下同様に、星型の色点、黒丸の色点に加えて、二重丸の色点も削減候補色点である場合には、まず、二重丸の色点の色情報を、削減候補色点とはなっていない白丸の色点の色情報から補間して求める。図10(b)に着目すると、例えば、色点1003の色情報は、色点1001の色情報と色点1002の色情報の平均値とする。これは、色点1003は、色点1001と色点1002との間の辺上の中間にあることから、容易に理解できる。   Similarly, in the case where the double-circle color point is also a reduction candidate color point in addition to the star-shaped color point and the black circle color point, the color information of the double-circle color point is first displayed as the reduction candidate. It is obtained by interpolation from the color information of the white circle color point that is not the color point. Focusing on FIG. 10B, for example, the color information of the color point 1003 is an average value of the color information of the color point 1001 and the color information of the color point 1002. This can be easily understood because the color point 1003 is in the middle of the side between the color point 1001 and the color point 1002.

ここで、ある分割指数kw(0<kw<k、但し、kは最大色点数に対応する分割指数で、以下、最大分割指数とも称する)における数の色点のうち削減候補色点として決定した色点に着目する。削減候補色点の位置B(l1,m1,q1)における色情報を、その最近傍にある削減候補色点ではない色点のうちの2つの色情報(B(l0,m0,q0)における位置の色情報、B(l2,m2,q2)における位置の色情報)の平均値とする。ただし、l1、m1、q1において、l0=l1=l2、m0=m1=m2、q0=q1=q2、のいずれか一つ、かつ、そのひとつのみが成立している。また、成立しなかった2つも含めて、l1=(l0+l2)/2、m1=(m0+m2)/2、q1=(q0+q2)/2が成立している。   Here, the number of color points in a certain division index kw (0 <kw <k, where k is a division index corresponding to the maximum number of color points, hereinafter also referred to as the maximum division index) is determined as a reduction candidate color point. Focus on color points. The color information at the position B (l1, m1, q1) of the reduction candidate color point is the position in the color information (B (l0, m0, q0) of two color points that are not the reduction candidate color points in the nearest vicinity. Color information, color information of position in B (l2, m2, q2)). However, in l1, m1, and q1, only one of l0 = l1 = l2, m0 = m1 = m2, and q0 = q1 = q2 is established. Further, including the two not established, l1 = (l0 + l2) / 2, m1 = (m0 + m2) / 2, and q1 = (q0 + q2) / 2 are established.

次に、誤差生成部1073は、色点候補削減部1071が削減候補色点として決定したそれぞれの色点について、色情報補間部1072が該色点について補間により求めた色情報と、色情報抽出部105が該色点について入力画像から取得した色情報と、の差分(誤差)を求める。差分を求める方法には様々な方法が考え得るが、ここでは一例として、削減候補色点として決定した色点ごとに、色情報補間部1072が該色点について補間により求めた色情報と、色情報抽出部105が該色点について入力画像から取得した色情報と、の差の二乗を上記の「差分」として求める。そして、誤差生成部1073は、削減候補色点として決定したそれぞれの色点について求めた差分の総和を最大色点数で割り、最大色点数に基づく、色点一点当たりの誤差値θk−1(差分二乗値)を求める。なお、削減候補点ではない色点に関しては、差分は0となるため、前述の最大色点数に基づく、色点一点当たりの誤差値θk−1に影響を与えない。 Next, for each color point determined by the color point candidate reduction unit 1071 as the reduction candidate color point, the error generation unit 1073 extracts the color information obtained by interpolation by the color information interpolation unit 1072 and the color information extraction. The unit 105 obtains a difference (error) between the color point and the color information acquired from the input image. Various methods can be considered as a method for obtaining the difference. Here, as an example, for each color point determined as a reduction candidate color point, the color information interpolated by the color information interpolation unit 1072 for the color point, The information extraction unit 105 obtains the square of the difference between the color point and the color information acquired from the input image as the “difference”. Then, the error generation unit 1073 divides the sum of the differences obtained for the respective color points determined as the reduction candidate color points by the maximum number of color points, and an error value θ k−1 per color point based on the maximum number of color points ( Find the squared difference. Since the difference is 0 for color points that are not reduction candidate points, the error value θ k−1 per color point based on the aforementioned maximum number of color points is not affected.

次に、判定部1074は、誤差生成部1073が求めた「色点一点当たりの誤差値θk−1」と、許容値設定部106が設定した誤差許容値(固定値Th)と、の大小比較を行い、誤差値θk−1が誤差許容値よりも小さいか否かを判断する。この判断の結果、誤差値θk−1が誤差許容値よりも小さい場合には、削減候補色点数をさらに増やすことができると判断し、最大色点数Nの色点から更に削減候補色点を決定させるべく、色点候補削減部1071以降に動作を行わせる。 Next, the determination unit 1074 calculates the difference between the “error value θ k−1 per color point” obtained by the error generation unit 1073 and the error allowable value (fixed value Th) set by the allowable value setting unit 106. A comparison is made to determine whether or not the error value θ k−1 is smaller than the allowable error value. As a result of this determination, if the error value θ k−1 is smaller than the allowable error value, it is determined that the number of reduction candidate color points can be further increased, and further reduction candidate color points are selected from the color points of the maximum number N of color points. In order to determine, the operation is performed by the color point candidate reduction unit 1071 and subsequent operations.

これにより、色点候補削減部1071は、最大色点数決定部103が設定した最大色点数Nに対応する分割指数をkとすると、分割指数(k−2)に対応する数の色点の3頂点曲線メッシュ内の位置を、色点候補位置設定部104と同様にして求める。そして、色点候補削減部1071は、分割指数kに対応する数(最大色点数)の色点のうち非削減候補色点(すなわち、分割指数(k−1)に対応する数の色点)を対象とし、該対象とする非削減候補色点のうち、分割指数(k−2)に対応する数の色点と、その位置が異なる色点を、削減候補色点として決定する。そして、色情報補間部1072は、3頂点曲線メッシュにおいて色点候補削減部1071が削減候補色点として決定した色点の色情報を、該3頂点曲線メッシュにおいて削減候補色点として決定されなかった色点の色情報から補間により求める。そして誤差生成部1073は、色点候補削減部1071が削減候補色点として決定した色点一点当たりの誤差値θk−2(差分二乗値)を求める。判定部1074は、誤差値θk−2と誤差許容値(固定値Th)との大小比較を行い、誤差値θk−2が誤差許容値よりも小さい場合には、削減候補色点数をさらに増やすことができると判断し、色点候補削減部1071に対して、最大色点数Nの色点から更に削減候補色点を決定させるべく、色点候補削減部1071以降に動作を行わせる。 Accordingly, the color point candidate reduction unit 1071 sets 3 of the number of color points corresponding to the division index (k−2), where k is the division index corresponding to the maximum number N of color points set by the maximum color point number determination unit 103. The position in the vertex curve mesh is obtained in the same manner as the color point candidate position setting unit 104. The color point candidate reduction unit 1071 then selects the non-reduction candidate color points (that is, the number of color points corresponding to the division index (k−1)) among the number of color points corresponding to the division index k (the maximum number of color points). Among the target non-reduced candidate color points, the number of color points corresponding to the division index (k−2) and the color points whose positions are different are determined as reduction candidate color points. Then, the color information interpolation unit 1072 has not determined the color information of the color point determined as the reduction candidate color point by the color point candidate reduction unit 1071 in the three-vertex curve mesh as the reduction candidate color point in the three-vertex curve mesh. Obtained by interpolation from color point color information. Then, the error generation unit 1073 obtains an error value θ k−2 (difference square value) per color point determined by the color point candidate reduction unit 1071 as the reduction candidate color point. The determination unit 1074 performs a size comparison between the error value θ k−2 and the allowable error value (fixed value Th). If the error value θ k−2 is smaller than the allowable error value, the number of reduction candidate color points is further increased. The color point candidate reduction unit 1071 is caused to perform an operation after the color point candidate reduction unit 1071 to determine further reduction candidate color points from the color points having the maximum number N of color points.

このように、色点候補削減部1071、色情報補間部1072、誤差生成部1073による「誤差値θk−m(mは1以上の整数)を求める」処理を、m=1,2,…について行い、誤差値θk−l(1≦l≦k)が誤差許容値以上となった時点で、判定部1074は、削減候補色点数をさらに増やすことは適切ではないと判断し、その旨を色点情報確定部1075に通知する。 In this way, the process of “determining the error value θ k−m (m is an integer equal to or greater than 1)” by the color point candidate reduction unit 1071, the color information interpolation unit 1072, and the error generation unit 1073 is performed as m = 1, 2,. When the error value θ k−1 (1 ≦ l ≦ k) becomes equal to or greater than the allowable error value, the determination unit 1074 determines that it is not appropriate to further increase the number of candidate color points to be reduced. To the color point information confirmation unit 1075.

色点情報確定部1075は、直前に吟味した分割指数(上記の例の場合、(k−m))では、適切な条件が維持できなくなることが判明したために動作がここに移されてきたことを考慮する。即ち、直前に吟味した分割指数より1だけ大きな分割指数を、3頂点曲線メッシュにおける適切な分割数(以下、最終分割数と称する)として扱う。この最終分割数に対応する色点数での色点の位置とそれら位置での色情報をもって、該3頂点曲線メッシュにおける色点情報とする。そして、メッシュ生成部102で生成した全ての3頂点曲線メッシュについて色点情報の生成を完了していれば、色点情報確定部1075は、その旨をメッシュ情報出力部108に通知する。一方、未だ色点情報を生成していない3頂点曲線メッシュが残っている場合には、色点情報確定部1075は、色点情報が未確定の3頂点曲線メッシュを対象として、最大色点数決定部103以降の動作を行わせる。   The color point information determination unit 1075 has been moved here because it has been found that an appropriate condition cannot be maintained with the division index (in the above example, (km)) examined immediately before. Consider. That is, a division index larger by 1 than the division index examined immediately before is handled as an appropriate division number (hereinafter referred to as the final division number) in the three-vertex curve mesh. The position of the color point at the number of color points corresponding to the final division number and the color information at those positions are used as the color point information in the three-vertex curve mesh. If the generation of the color point information has been completed for all the three vertex curve meshes generated by the mesh generation unit 102, the color point information determination unit 1075 notifies the mesh information output unit 108 to that effect. On the other hand, when there remains a three-vertex curve mesh for which color point information has not yet been generated, the color point information determination unit 1075 determines the maximum number of color points for the three-vertex curve mesh whose color point information is not yet determined. The operation after the unit 103 is performed.

メッシュ情報出力部108では、以上説明した動作で求められた3頂点曲線メッシュの数と各3頂点曲線メッシュの頂点に関する情報や、各3頂点曲線メッシュにおける色点数や色点の位置、それらの位置における色情報等を含むメッシュ情報を出力する。即ち、これまでの処理で得られた3頂点曲線メッシュの情報をベクトル情報として出力する。   In the mesh information output unit 108, information on the number of the three-vertex curve meshes and the vertices of each of the three-vertex curve meshes obtained by the operation described above, the number of color points and the positions of the color points in each of the three-vertex curve meshes, and their positions The mesh information including the color information at is output. That is, the information of the three-vertex curve mesh obtained by the processing so far is output as vector information.

図1の最大色点数決定部103以降の各機能部による処理について、図9のフローチャートを用いて説明する。なお、図9のフローチャートに従った処理は、1つの3頂点曲線メッシュに対する処理であるから、実際には、図9のフローチャートに従った処理は、メッシュ生成部102が生成したそれぞれの3頂点曲線メッシュに対して行われることになる。また、図9のフローチャートに従った処理は、以上説明した処理と異なる部分があるが、何れも実質的には同じ処理である。   Processing by each functional unit after the maximum color point number determination unit 103 in FIG. 1 will be described with reference to the flowchart in FIG. Since the processing according to the flowchart of FIG. 9 is processing for one three-vertex curve mesh, actually, the processing according to the flowchart of FIG. 9 is performed for each three-vertex curve generated by the mesh generation unit 102. Will be done on the mesh. Further, the processing according to the flowchart of FIG. 9 is different from the processing described above, but all are substantially the same processing.

<ステップS9010>
最大色点数決定部103は、3頂点曲線メッシュの最大分割指数を設定する。ここでは最大分割指数=3とする。
<Step S9010>
The maximum color point number determination unit 103 sets the maximum division index of the three-vertex curve mesh. Here, the maximum division index = 3.

<ステップS9020>
最大色点数決定部103は、ステップS9010で設定した最大分割指数に対応する最大色点数Nを設定する。最大分割指数=3の場合、図11からN=45となる。次に、色点候補位置設定部104は、3頂点曲線メッシュ内における45個の色点のそれぞれの位置(座標)を求め、色情報抽出部105は、45個の色点のそれぞれの位置における色情報を、入力画像から取得する。
<Step S9020>
The maximum color point number determination unit 103 sets the maximum color point number N corresponding to the maximum division index set in step S9010. In the case of the maximum division index = 3, N = 45 from FIG. Next, the color point candidate position setting unit 104 obtains the positions (coordinates) of the 45 color points in the three-vertex curve mesh, and the color information extraction unit 105 determines the positions of the 45 color points. Color information is obtained from the input image.

<ステップS9030>
許容値設定部106は、色点数の削減を図る上で、必要以上の削減を抑えるための基準とする値としての誤差許容値Thを定める。ここではTh=1.0とする。
<Step S9030>
The allowable value setting unit 106 determines the allowable error value Th as a reference value for suppressing an unnecessary reduction in reducing the number of color points. Here, Th = 1.0.

<ステップS9040>
色点候補削減部1071は、現在分割数を示す変数Aに、ステップS9010で設定した最大分割指数=3を設定する。
<Step S9040>
The color point candidate reduction unit 1071 sets the maximum division index = 3 set in step S9010 to the variable A indicating the current division number.

<ステップS9050>
色点候補削減部1071は、直前分割数を示す変数Bに、変数Aの値を設定する。
<Step S9050>
The color point candidate reduction unit 1071 sets the value of the variable A to the variable B indicating the previous division number.

<ステップS9060>
色点候補削減部1071は、変数Aの値を1つデクリメントする。
<Step S9060>
The color point candidate reduction unit 1071 decrements the value of the variable A by one.

<ステップS9070>
色点候補削減部1071は、変数Aの値が0以上であるか否かを判断する。この判断の結果、変数Aの値が0以上である場合には、処理はステップS9080に進み、変数Aの値が0未満である場合には、処理はステップS9120に進む。
<Step S9070>
The color point candidate reduction unit 1071 determines whether or not the value of the variable A is 0 or more. As a result of the determination, if the value of variable A is 0 or more, the process proceeds to step S9080, and if the value of variable A is less than 0, the process proceeds to step S9120.

<ステップS9080>
色点候補削減部1071は、分割指数Aに対応する数の色点の3頂点曲線メッシュ内の位置を、色点候補位置設定部104と同様にして求める。そして、色点候補削減部1071は、分割指数Bに対応する数の色点のうち、分割指数Aに対応する数の色点と、その位置が異なる色点を、削減候補色点として決定する。
<Step S9080>
The color point candidate reduction unit 1071 obtains the positions of the number of color points corresponding to the division index A in the three-vertex curve mesh in the same manner as the color point candidate position setting unit 104. Then, the color point candidate reduction unit 1071 determines, among the number of color points corresponding to the division index B, the color points corresponding to the division index A and the color points whose positions are different as the reduction candidate color points. .

<ステップS9090>
色情報補間部1072は、3頂点曲線メッシュにおいて色点候補削減部1071が削減候補色点として決定した色点の色情報を、該3頂点曲線メッシュにおいて削減候補色点として決定されなかった色点の色情報から補間により求める。
<Step S9090>
The color information interpolation unit 1072 uses the color information of the color point determined as the reduction candidate color point by the color point candidate reduction unit 1071 in the three-vertex curve mesh, and the color point not determined as the reduction candidate color point in the three-vertex curve mesh. It is obtained by interpolation from the color information.

<ステップS9100>
誤差生成部1073は、色点候補削減部1071が削減候補色点として決定したそれぞれの色点について、色情報補間部1072が該色点について補間により求めた色情報と、色情報抽出部105が該色点について入力画像から取得した色情報と、の差分を求める。そして、誤差生成部1073は、削減候補色点として決定したそれぞれの色点について求めた差分の総和を最大色点数で割り、最大色点数に基づく、色点一点当たりの誤差値θk−1(差分二乗値)を求める。
<Step S9100>
For each color point determined by the color point candidate reduction unit 1071 as a reduction candidate color point, the error generation unit 1073 uses the color information obtained by the color information interpolation unit 1072 by interpolation, and the color information extraction unit 105 A difference between the color point and the color information acquired from the input image is obtained. Then, the error generation unit 1073 divides the sum of the differences obtained for the respective color points determined as the reduction candidate color points by the maximum number of color points, and an error value θ k−1 per color point based on the maximum number of color points ( Find the squared difference.

<ステップS9110>
判定部1074は、誤差値θk−1が誤差許容値よりも小さいか否かを判断する。この判断の結果、誤差値θk−1が誤差許容値よりも小さい場合には、処理はステップS9050に進み、誤差値θk−1が誤差許容値以上である場合には、処理はステップS9120に進む。
<Step S9110>
The determination unit 1074 determines whether or not the error value θ k−1 is smaller than the allowable error value. If it is determined that the error value θ k−1 is smaller than the allowable error value, the process proceeds to step S9050. If the error value θ k−1 is equal to or greater than the allowable error value, the process proceeds to step S9120. Proceed to

<ステップS9120>
色点情報確定部1075は、最終分割数Bに対応する色点数での色点の位置とそれら位置での色情報をもって、該3頂点曲線メッシュにおける色点情報とする。もちろん、色点情報には、色点に係る他の情報を含めても良い。
<Step S9120>
The color point information determination unit 1075 uses the color point position at the number of color points corresponding to the final division number B and the color information at those positions as color point information in the three-vertex curve mesh. Of course, the color point information may include other information related to the color point.

<第1の実施形態の変形例>
図1に示した各部はハードウェアで構成しても良いが、ソフトウェア(コンピュータプログラム)として実装しても良い。この場合、このソフトウェアは、PC(パーソナルコンピュータ)等、一般のコンピュータのメモリにインストールされることになる。そしてこのコンピュータのCPUがこのインストールされたソフトウェアを実行することで、このコンピュータは、上述の画像処理装置の機能(図1に示した各部の機能)を実現することになる。即ち、このコンピュータは、上述の画像処理装置に適用することができる。図12を用いて、第1の実施形態に係る画像処理装置として適用可能なコンピュータのハードウェア構成例について説明する。
<Modification of First Embodiment>
Each unit shown in FIG. 1 may be configured by hardware, but may be implemented as software (computer program). In this case, the software is installed in a memory of a general computer such as a PC (personal computer). When the CPU of the computer executes the installed software, the computer realizes the functions of the above-described image processing apparatus (functions of each unit illustrated in FIG. 1). That is, this computer can be applied to the above-described image processing apparatus. A hardware configuration example of a computer applicable as the image processing apparatus according to the first embodiment will be described with reference to FIG.

CPU1501は、RAM1502やROM1503に格納されているコンピュータプログラムやデータを用いて処理を実行することで、コンピュータ全体の動作制御を行うと共に、画像処理装置が行うものとして説明した上述の各処理を実行若しくは制御する。即ち、図1に示した各部が行うものとして上述した各処理を実行若しくは制御する。   The CPU 1501 executes processes using computer programs and data stored in the RAM 1502 and the ROM 1503, thereby controlling the operation of the entire computer and executing the above-described processes described as being performed by the image processing apparatus. Control. In other words, each process described above as being performed by each unit shown in FIG. 1 is executed or controlled.

RAM1502は、外部記憶装置1507や記憶媒体ドライブ1508からロードされたコンピュータプログラムやデータ、I/F(インターフェース)1509を介して外部装置から受信したデータなどを一時的に記憶するためのエリアを有する。更に、RAM1502は、CPU1501が各種の処理を実行する際に用いるワークエリアを有する。即ち、RAM1502は、各種のエリアを適宜提供することができる。ROM1503には、コンピュータの設定データや、ブートプログラムなどが格納されている。   The RAM 1502 has an area for temporarily storing computer programs and data loaded from the external storage device 1507 and the storage medium drive 1508, data received from the external device via the I / F (interface) 1509, and the like. Further, the RAM 1502 has a work area used when the CPU 1501 executes various processes. That is, the RAM 1502 can provide various areas as appropriate. The ROM 1503 stores computer setting data, a boot program, and the like.

キーボード1504、マウス1505は、コンピュータの操作者が操作することで、各種の指示をCPU1501に対して入力することができるユーザインターフェースの一例である。例えば、上記の最大分割指数等、設定するものとして説明した各種の情報は、ユーザがキーボード1504やマウス1505を操作することで入力しても構わない。   A keyboard 1504 and a mouse 1505 are examples of a user interface that can input various instructions to the CPU 1501 when operated by a computer operator. For example, various types of information described as being set, such as the above maximum division index, may be input by the user operating the keyboard 1504 or the mouse 1505.

表示装置1506は、CRTや液晶画面などにより構成されており、CPU1501による処理結果を画像や文字などをもって表示することができる。例えば、上記入力画像を表示したり、3頂点曲線メッシュ群などを表示したりすることができる。   The display device 1506 is configured by a CRT, a liquid crystal screen, or the like, and can display a processing result by the CPU 1501 as an image, text, or the like. For example, the input image can be displayed, or a three-vertex curve mesh group can be displayed.

外部記憶装置1507は、ハードディスクドライブ装置に代表される大容量情報記憶装置である。外部記憶装置1507には、OS(オペレーティングシステム)や、図1に示した各部の機能をCPU1501に実現させるためのコンピュータプログラムやデータ、上記入力画像のデータ、既知の情報として説明した情報等が保存されている。外部記憶装置1507に保存されているコンピュータプログラムやデータは、CPU1501による制御に従って適宜RAM1502にロードされ、CPU1501による処理対象となる。   The external storage device 1507 is a large-capacity information storage device represented by a hard disk drive device. The external storage device 1507 stores an OS (operating system), computer programs and data for causing the CPU 1501 to realize the functions of the respective units shown in FIG. 1, data of the input image, information described as known information, and the like. Has been. Computer programs and data stored in the external storage device 1507 are appropriately loaded into the RAM 1502 under the control of the CPU 1501 and are processed by the CPU 1501.

記憶媒体ドライブ1508は、CD−ROMやDVD−ROMなどの記憶媒体に記録されているコンピュータプログラムやデータを読み出し、該読み出したコンピュータプログラムやデータを外部記憶装置1507やRAM1502に出力する。なお、外部記憶装置1507に保存されているものとして説明した情報の一部若しくは全部をこの記憶媒体に記録させておき、この記憶媒体ドライブ1508に読み取らせても良い。   The storage medium drive 1508 reads a computer program and data recorded on a storage medium such as a CD-ROM or DVD-ROM, and outputs the read computer program or data to the external storage device 1507 or the RAM 1502. Note that part or all of the information described as being stored in the external storage device 1507 may be recorded on this storage medium and read by this storage medium drive 1508.

I/F1509は、外部装置をコンピュータに接続する為のものである。例えば、ディジタルカメラなど、上記入力画像を取得するための装置を、このI/F1509に接続し、この装置から入力画像をI/F1509を介してRAM1502や外部記憶装置1507に取得するようにしても良い。1510は、上述の各部を繋ぐバスである。   The I / F 1509 is for connecting an external device to a computer. For example, a device such as a digital camera for acquiring the input image is connected to the I / F 1509, and the input image is acquired from the device via the I / F 1509 to the RAM 1502 or the external storage device 1507. good. A bus 1510 connects the above-described units.

上述構成において、本コンピュータの電源がONになると、CPU1501はROM1503に格納されている上記ブートプログラムに従って、外部記憶装置1507からOSをRAM1502にロードする。この結果、キーボード1504、マウス1505を介した情報入力操作が可能となり、表示装置1506にGUIを表示することが可能となる。ユーザが、キーボード1504やマウス1505を操作し、外部記憶装置1507に格納された画像処理用アプリケーションプログラムの起動指示を入力すると、CPU1501はこのプログラムをRAM1502にロードし、実行する。これにより、本コンピュータが上記の画像処理装置として機能することになる。   In the above configuration, when the computer is turned on, the CPU 1501 loads the OS from the external storage device 1507 to the RAM 1502 in accordance with the boot program stored in the ROM 1503. As a result, an information input operation can be performed via the keyboard 1504 and the mouse 1505, and a GUI can be displayed on the display device 1506. When the user operates the keyboard 1504 or the mouse 1505 and inputs an activation instruction for an image processing application program stored in the external storage device 1507, the CPU 1501 loads the program into the RAM 1502 and executes it. As a result, the computer functions as the image processing apparatus.

CPU1501が実行する画像処理用のアプリケーションプログラムは、基本的に図1の各処理部、及び、図9の各ステップに示す各構成要素に相当する関数を備えることになる。   The application program for image processing executed by the CPU 1501 basically includes functions corresponding to the respective components shown in the respective processing units in FIG. 1 and the respective steps in FIG.

[第2の実施形態]
第1の実施形態でも述べたが、第1の実施形態では、最大色点数N=45としたが、これは説明を具体的に行うためであって、第1の実施形態はN=45に特化した実施形態ではなく、Nは他の値であっても構わない。
[Second Embodiment]
As described in the first embodiment, in the first embodiment, the maximum number of color points is set to N = 45. However, this is for specific description, and in the first embodiment, N = 45. N is not a specialized embodiment, and N may be another value.

また、第1の実施形態では、最大色点数Nは全ての3頂点曲線メッシュで同じとしたが、3頂点曲線メッシュごとに、3頂点曲線メッシュの面積などに応じた適当な最大色点数Nを設定しても構わない。例えば、3頂点曲線メッシュの面積(若しくは面積の大小に応じて大小となる値)より少ない値や、3頂点曲線メッシュを構成する三頂点間を繋ぐ3本の線の中で最も長い線の線長より小さな値を分割数としたときに、対応する色点数としても良い。3頂点曲線メッシュの面積とは、3頂点曲線メッシュ内に含まれる画素数のことであるが、該3頂点曲線メッシュを構成する三頂点のそれぞれの座標値から求まる、該三頂点で構成される三角形の面積をもって、該3頂点曲線メッシュの面積としてみなしてもよい。   In the first embodiment, the maximum number of color points N is the same for all three vertex curve meshes. However, for each three vertex curve mesh, an appropriate maximum number of color points N corresponding to the area of the three vertex curve mesh is set. You can set it. For example, a value that is smaller than the area of the three-vertex curve mesh (or a value that becomes larger or smaller depending on the size of the area) or the longest line among the three lines that connect the three vertices of the three-vertex curve mesh When a value smaller than the length is used as the division number, the corresponding number of color points may be used. The area of the three-vertex curve mesh is the number of pixels included in the three-vertex curve mesh, and is composed of the three vertices obtained from the coordinate values of the three vertices constituting the three-vertex curve mesh. A triangular area may be regarded as the area of the three-vertex curve mesh.

例えば、ある3頂点曲線メッシュの面積(若しくは面積の大小に応じて大小となる値)が42である場合には、最大色点数はそれより小さな15とする等の決め方でもよい。また、3頂点曲線メッシュの三頂点間を繋ぐ3本の線の中で最長の線長が7のときには分割数4に対応する色点数15とする等の決め方であってもよい。面積に着目すると、広い3頂点曲線メッシュには多めの、狭い3頂点曲線メッシュには少なめの最大色点数を取ることとなり、最大色点数を固定値とするときに比して、3頂点曲線メッシュで表現しなければならない画素数に見合った適応的な値とすることができる。3頂点曲線メッシュの三頂点間を繋ぐ3本の線の中で最長の線長に着目すると、固定的な分割数に対応した色点数とする場合に比し、各線上を冗長に分割することなく、適応的な分割数で分割して得られる色点数を最大色点数とすることができる。   For example, when the area of a certain three-vertex curve mesh (or a value that becomes larger or smaller depending on the size of the area) is 42, the maximum number of color points may be set to 15, for example. Further, when the longest line length among the three lines connecting the three vertices of the three-vertex curve mesh is 7, the number of color points corresponding to the division number 4 may be set to 15, for example. Focusing on the area, a larger maximum of 3 color curve meshes and a smaller maximum of 3 color curve meshes, and a smaller maximum color point of 3 vertex curve meshes. It can be set to an adaptive value corresponding to the number of pixels that must be expressed by. Focusing on the longest line length among the three lines connecting the three vertices of the three-vertex curve mesh, the lines are divided redundantly compared to the case where the number of color points corresponds to a fixed number of divisions. Instead, the maximum number of color points can be obtained by dividing by an adaptive number of divisions.

[第3の実施形態]
第1の実施形態では、誤差許容値Thの値を1.0として説明したが、これは説明を具体的に行うためであって、第1の実施形態はTh=1.0に特化した実施形態ではなく、Thは他の値であっても構わない。
[Third Embodiment]
In the first embodiment, the error tolerance value Th has been described as 1.0, but this is for specific description, and the first embodiment specializes in Th = 1.0. Instead of the embodiment, Th may be another value.

また、このThの値は、全ての3頂点曲線メッシュで共通であることに限るものではなく、3頂点曲線メッシュごとに、3頂点曲線メッシュの面積などに応じて適応的に定めてもよい。例えば、3頂点曲線メッシュに依らないある固定値を3頂点曲線メッシュの面積で除算した値の様に、3頂点曲線メッシュの面積にほぼ反比例した値として定めても良い。この場合には、最大色点数における色点一点当たりでどの程度の広さを持つ領域を表現するために用いるかといった観点も考慮した値として許容値を適応的に定めていると考えることができる。あるいは、誤差許容値自体は第1の実施形態と同様であっても、判定部1074(ステップS9110)で、色点一点当たりの誤差と誤差許容値(固定値Th)との単順な比較とはせず、3頂点曲線メッシュの面積を考慮した判定をする様に構成してもよい。即ち、誤差値に面積を乗算する等により、誤差値を3頂点曲線メッシュの面積にほぼ比例した値に換算した上で、換算済みの誤差値とThとの大小比較を行うようにしても構わない。さらに、誤差生成部1073(ステップS9100)で誤差値自体を3頂点曲線メッシュの面積にほぼ比例した値に換算した値とするように構成しても良い。   The value of Th is not limited to being common to all three vertex curve meshes, and may be determined adaptively for each three vertex curve mesh according to the area of the three vertex curve mesh. For example, a fixed value that does not depend on the three-vertex curve mesh may be determined as a value that is substantially inversely proportional to the area of the three-vertex curve mesh, such as a value obtained by dividing the fixed value by the area of the three-vertex curve mesh. In this case, it can be considered that the allowable value is adaptively determined as a value that also considers the viewpoint of how much area is used to represent the area per color point in the maximum number of color points. . Alternatively, even if the error allowable value itself is the same as that of the first embodiment, the determination unit 1074 (step S9110) performs a simple comparison between the error per color point and the error allowable value (fixed value Th). Instead, the determination may be made in consideration of the area of the three-vertex curve mesh. That is, the error value may be converted to a value substantially proportional to the area of the three-vertex curve mesh by multiplying the error value by the area, and the magnitude comparison between the converted error value and Th may be performed. Absent. Further, the error generation unit 1073 (step S9100) may be configured so that the error value itself is converted to a value substantially proportional to the area of the three-vertex curve mesh.

(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
(Other examples)
The present invention supplies a program that realizes one or more functions of the above-described embodiments to a system or apparatus via a network or a storage medium, and one or more processors in a computer of the system or apparatus read and execute the program This process can be realized. It can also be realized by a circuit (for example, ASIC) that realizes one or more functions.

102:メッシュ生成部 104:色点候補位置設定部 105:色情報抽出部 107:許容色点情報生成部   102: Mesh generation unit 104: Color point candidate position setting unit 105: Color information extraction unit 107: Allowable color point information generation unit

Claims (8)

入力画像から検出された検出線が、3頂点から成り且つ該3頂点間を結ぶ辺が直線または曲線であるメッシュの一辺となるように、前記入力画像を該メッシュを単位に分割し、該メッシュを複数のサブメッシュに分割するために該サブメッシュの各頂点を決定する画像処理装置であって、
前記メッシュを分割するサブメッシュの頂点の候補として設定されている候補頂点群の一部である部分頂点群の色情報と、該候補頂点群において該部分頂点群を除く他頂点群の色情報から求めた該部分頂点群の色情報と、の差分を求める計算手段と、
前記差分が規定値よりも小さい場合には、前記候補頂点群として前記他頂点群を設定してから前記計算手段を動作させ、前記差分が規定値以上の場合には、前記候補頂点群を、前記メッシュを分割するそれぞれのサブメッシュの頂点として決定する決定手段と
を備えることを特徴とする画像処理装置。
The input image is divided into units of the mesh so that the detection line detected from the input image is composed of three vertices and the side connecting the three vertices is one side of a mesh that is a straight line or a curve. An image processing device for determining each vertex of the sub-mesh for dividing the sub-mesh into a plurality of sub-mesh,
From the color information of the partial vertex group that is a part of the candidate vertex group set as a candidate for the vertex of the sub-mesh that divides the mesh, and the color information of the other vertex group excluding the partial vertex group in the candidate vertex group A calculation means for obtaining a difference between the obtained color information of the partial vertex group,
When the difference is smaller than a specified value, the other vertex group is set as the candidate vertex group and then the calculation means is operated.When the difference is equal to or larger than a specified value, the candidate vertex group is An image processing apparatus comprising: determining means for determining the vertex of each sub-mesh that divides the mesh.
前記計算手段は、前記メッシュを分割するサブメッシュの頂点の候補として設定されている候補頂点群の一部である部分頂点群の色情報と、該候補頂点群において該部分頂点群を除く他頂点群の色情報から補間により求めた該部分頂点群の色情報と、の差分を求めることを特徴とする請求項1に記載の画像処理装置。   The calculation means includes color information of a partial vertex group that is a part of a candidate vertex group set as a candidate for a vertex of a sub-mesh that divides the mesh, and other vertices excluding the partial vertex group in the candidate vertex group The image processing apparatus according to claim 1, wherein a difference from the color information of the partial vertex group obtained by interpolation from the color information of the group is obtained. 更に、
前記決定手段が、前記メッシュを分割するそれぞれのサブメッシュの頂点として決定した前記候補頂点群に係る情報を出力する手段を備えることを特徴とする請求項1又は2に記載の画像処理装置。
Furthermore,
The image processing apparatus according to claim 1, wherein the determination unit includes a unit that outputs information on the candidate vertex group determined as the vertexes of each sub-mesh that divides the mesh.
前記候補頂点の数の初期値、前記規定値は、それぞれのメッシュで同じであることを特徴とする請求項1乃至3の何れか1項に記載の画像処理装置。   4. The image processing apparatus according to claim 1, wherein the initial value of the number of candidate vertices and the specified value are the same for each mesh. 5. 前記候補頂点の数の初期値、前記規定値は、それぞれのメッシュの面積に応じて異なることを特徴とする請求項1乃至3の何れか1項に記載の画像処理装置。   4. The image processing apparatus according to claim 1, wherein the initial value of the number of candidate vertices and the specified value differ according to the area of each mesh. 5. 前記候補頂点の数の初期値は、それぞれのメッシュにおける最も長い一辺の長さに応じて異なることを特徴とする請求項1乃至3の何れか1項に記載の画像処理装置。   4. The image processing apparatus according to claim 1, wherein an initial value of the number of candidate vertices differs according to a length of one longest side in each mesh. 5. 入力画像から検出された検出線が、3頂点から成り且つ該3頂点間を結ぶ辺が直線または曲線であるメッシュの一辺となるように、前記入力画像を該メッシュを単位に分割し、該メッシュを複数のサブメッシュに分割するために該サブメッシュの各頂点を決定する画像処理装置が行う画像処理方法であって、
前記画像処理装置の計算手段が、前記メッシュを分割するサブメッシュの頂点の候補として設定されている候補頂点群の一部である部分頂点群の色情報と、該候補頂点群において該部分頂点群を除く他頂点群の色情報から求めた該部分頂点群の色情報と、の差分を求める計算工程と、
前記画像処理装置の決定手段が、前記差分が規定値よりも小さい場合には、前記候補頂点群として前記他頂点群を設定してから前記計算工程を動作させ、前記差分が規定値以上の場合には、前記候補頂点群を、前記メッシュを分割するそれぞれのサブメッシュの頂点として決定する決定工程と
を備えることを特徴とする画像処理方法。
The input image is divided into units of the mesh so that the detection line detected from the input image is composed of three vertices and the side connecting the three vertices is one side of a mesh that is a straight line or a curve. An image processing method performed by an image processing apparatus that determines each vertex of the sub-mesh to divide the sub-mesh into a plurality of sub-mesh,
The calculation means of the image processing apparatus includes color information of a partial vertex group that is a part of a candidate vertex group set as a candidate for a vertex of a sub-mesh that divides the mesh, and the partial vertex group in the candidate vertex group A calculation step for obtaining a difference between the color information of the partial vertex group obtained from the color information of the other vertex group excluding
When the determination unit of the image processing apparatus has the difference smaller than a predetermined value, the calculation step is operated after setting the other vertex group as the candidate vertex group, and the difference is equal to or larger than a predetermined value. Comprises determining a candidate vertex group as a vertex of each sub-mesh that divides the mesh.
コンピュータを、請求項1乃至6の何れか1項に記載の画像処理装置の各手段として機能させるためのコンピュータプログラム。   A computer program for causing a computer to function as each unit of the image processing apparatus according to any one of claims 1 to 6.
JP2014240363A 2014-11-27 2014-11-27 Image processing apparatus, image processing method, and computer program Active JP6472226B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014240363A JP6472226B2 (en) 2014-11-27 2014-11-27 Image processing apparatus, image processing method, and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014240363A JP6472226B2 (en) 2014-11-27 2014-11-27 Image processing apparatus, image processing method, and computer program

Publications (2)

Publication Number Publication Date
JP2016103106A JP2016103106A (en) 2016-06-02
JP6472226B2 true JP6472226B2 (en) 2019-02-20

Family

ID=56088972

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014240363A Active JP6472226B2 (en) 2014-11-27 2014-11-27 Image processing apparatus, image processing method, and computer program

Country Status (1)

Country Link
JP (1) JP6472226B2 (en)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05300378A (en) * 1992-04-22 1993-11-12 Photo Composing Mach Mfg Co Ltd Dot threshold level generating method
US6313840B1 (en) * 1997-04-18 2001-11-06 Adobe Systems Incorporated Smooth shading of objects on display devices
US6064771A (en) * 1997-06-23 2000-05-16 Real-Time Geometry Corp. System and method for asynchronous, adaptive moving picture compression, and decompression
JP2002260005A (en) * 2001-02-28 2002-09-13 Konami Computer Entertainment Japan Inc Image plotting method and program used therefor
JP2006350576A (en) * 2005-06-14 2006-12-28 Fuji Xerox Co Ltd Image processor, image processing method and image processing program
JP5798357B2 (en) * 2011-04-11 2015-10-21 キヤノン株式会社 Image processing apparatus and image processing method
JP5956875B2 (en) * 2012-08-30 2016-07-27 キヤノン株式会社 Image processing apparatus and image processing method

Also Published As

Publication number Publication date
JP2016103106A (en) 2016-06-02

Similar Documents

Publication Publication Date Title
JP3989451B2 (en) Color gradient path
US9886792B2 (en) Adaptive mesh refinement
US8044955B1 (en) Dynamic tessellation spreading for resolution-independent GPU anti-aliasing and rendering
JP5451285B2 (en) Image processing apparatus and image processing method
KR102666054B1 (en) Graphics processing systems
US11087511B1 (en) Automated vectorization of a raster image using a gradient mesh with arbitrary topology
CN109697748B (en) Model compression processing method, model mapping processing method, model compression processing device, and storage medium
JP2006053887A (en) Interpolation method for resolution conversion, image processor, image display device, program, and recording medium
CN107123086B (en) Image scaling method, image scaling device and electronic equipment
JP2014527244A (en) Exposure enhancement method and apparatus for defogging image
CN111489322A (en) Method and device for adding sky filter to static picture
US7948489B1 (en) Minimizing tessellation of surfaces
JP6294700B2 (en) Image processing apparatus and image processing method
JP5888989B2 (en) Image processing apparatus and image processing method
JP5798357B2 (en) Image processing apparatus and image processing method
JP6472226B2 (en) Image processing apparatus, image processing method, and computer program
JP5956875B2 (en) Image processing apparatus and image processing method
JP2012230668A (en) Image processor, image processing method, and program
JP5587132B2 (en) Image processing apparatus and image processing method
US11200708B1 (en) Real-time color vector preview generation
JPH07334648A (en) Method and device for processing image
JP2004101937A (en) Method, device and processing program for optimizing font
JP2015090613A (en) Image processor and image processing method
JP6686122B1 (en) Image processing apparatus, image processing method and program
JP2012039331A (en) Parallax image creation device, parallax image creation method, program, and storage medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171122

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181217

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: 20181225

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190122

R151 Written notification of patent or utility model registration

Ref document number: 6472226

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151