# Patent application title: IMAGE PROCESSING APPARATUS, IMAGE PROCESSING METHOD, AND COMPUTER PROGRAM PRODUCT

##
Inventors:
Nao Mishima (Tokyo, JP)
Kenzo Isogawa (Kanagawa, JP)
Ryusuke Hirai (Tokyo, JP)
Ryusuke Hirai (Tokyo, JP)
Goh Itoh (Tokyo, JP)

Assignees:
KABUSHIKI KAISHA TOSHIBA

IPC8 Class: AG06K932FI

USPC Class:
382199

Class name: Feature extraction local or regional features pattern boundary and edge measurements

Publication date: 2010-03-04

Patent application number: 20100054606

## Abstract:

An image processing apparatus includes an operating unit that calculates a
tangent-line direction of an edge and a normal-line direction of the edge
by using a vertical-direction derivative value and a horizontal-direction
derivative value of a pixel value of a pixel in an input image; a
converting unit that converts local coordinates positioned within a
predetermined area with respect to a target pixel in the input image into
rotated coordinates, by rotating the local coordinates according to an
angle formed by the horizontal direction and the tangent-line direction
of the edge; and a fitting unit that performs, at the rotated
coordinates, a fitting process that employs a least-squares method by
using a curved-plane model expressed with the pixel value of the target
pixel in the input image.## Claims:

**1.**An image processing apparatus comprising:a calculating unit that calculates at least one of a tangent-line direction and a normal-line direction of an edge around a target pixel in an input image by using a direction and a magnitude of a gradient of pixel values of pixels that neighbor the target pixel in the input image;a converting unit that converts coordinates of pixels around the target pixel into a rotated coordinate system by rotating the axes according to an angle between a horizontal direction of the input image and the tangent-line direction of the edge or the normal-line direction of the edge; anda fitting unit that performs a fitting process to fit a local gradient around the target pixel, on the rotated coordinate system, into a curved-plane model by the method of least-squares, and an outputting process to obtain a reconstructed pixel value of the target pixel by using the curved-plane model.

**2.**The apparatus according to claim 1, further comprising:a selecting unit that classifies the target pixel as one of a plurality of predetermined classes by using the direction and the magnitude of the gradient, and selects one of curved-plane models that respectively correspond, in a one-to-one correspondence, to the classes as a curved-plane model for the target pixel, whereinthe fitting unit performs the fitting process by using the curved-plane model selected by the selecting unit.

**3.**The apparatus according to claim 1, wherein the fitting unit configures the curved-plane model so that a degree of freedom in a normal-line direction of the edge is higher than a degree of freedom in a tangent-line direction of the edge.

**4.**The apparatus according to claim 1, further comprising a weight calculator that applies a weight to a pixel value of a pixel in the input image according a distance from the target pixel to the pixel.

**5.**The apparatus according to claim 4, wherein the weight calculator calculates the weight in such a manner that the larger a difference between the pixel value of the pixel in the input image and the pixel value of the target pixel is, the smaller is the weight applied to the pixel value of the pixel in the input image.

**6.**The apparatus according to claim 1, further comprising:a storage unit that stores a normal equation based on the least-squares method for each of mutually-different tangent-line directions of the edge, whereinthe fitting unit performs the fitting process using the curved-plane model by selecting a normal equation corresponding to a tangent-line direction of the edge from the normal equations stored in the storage unit and performing a convolution operation on the selected normal equation and the pixel value of the target pixel at the rotated coordinates.

**7.**The apparatus according to claim 1, further comprising:a difference calculator that calculates a difference between the pixel value of the pixel in the input image and a pixel value in the curved-plane model, whereinthe fitting unit performs the fitting process that employs the least-squares method by using a texture curved-plane model that is formed according to the pixel value of the target pixel, based on the calculated difference.

**8.**An image processing method comprising:calculating at least one of a tangent-line direction and a normal-line direction of an edge around a target pixel in an input image by using a direction and a magnitude of a gradient of pixel values of pixels that neighbor the target pixel in the input image;converting coordinates of pixels around the target pixel into a rotated coordinate system by rotating the axes according to an angle between a horizontal direction of the input image and the tangent-line direction of the edge or the normal-line direction of the edge; andperforming a fitting process to fit a local gradient around the target pixel, on the rotated coordinate system, into a curved-plane model by the method of least squares, and an outputting process to obtain a reconstructed pixel value of the target pixel by using the curved-plane model.

**9.**A computer program product having a computer readable medium including programmed instructions for performing image processing, wherein the instructions, when executed by a computer, cause the computer to perform:calculating at least one of a tangent-line direction and a normal-line direction of an edge around a target pixel in an input image by using a direction and a magnitude of a gradient of pixel values of pixels that neighbor the target pixel in the input image;converting coordinates of pixels around the target pixel into a rotated coordinate system by rotating the axes according to an angle between a horizontal direction of the input image and the tangent-line direction of the edge or the normal-line direction of the edge; andperforming a fitting process to fit a local gradient around the target pixel, on the rotated coordinate system, into a curved-plane model by the method of least squares, and an outputting process to obtain a reconstructed pixel value of the target pixel by using the curved-plane model.

## Description:

**CROSS**-REFERENCE TO RELATED APPLICATIONS

**[0001]**This application is based upon and claims the benefit of priority from the prior Japanese Patent Application No. 2008-222696, filed on Aug. 29, 2008; the entire contents of which are incorporated herein by reference.

**BACKGROUND OF THE INVENTION**

**[0002]**1. Field of the Invention

**[0003]**The present invention relates to an image processing apparatus, an image processing method, and an image processing computer program product.

**[0004]**2. Description of the Related Art

**[0005]**The specification in the publication of patent application of United States No. 2007/0047838 (reference 1), discloses a technique for obtaining an ideal noise-free image surface by performing a least-squares fitting process while using a parametric curved plane. According to this technique, a method called "kernel regression" is used. With this method, it is possible to extract shapes and edges in an input image with a higher level of precision than when an ordinary linear filtering method is used. However, problems remain where the image becomes too blurry due to a smoothing process when a low-order polynomial curved plane is used, whereas the image is more likely to have noises due to over-fitting when a high-order polynomial curved plane is used.

**SUMMARY OF THE INVENTION**

**[0006]**According to one aspect of the present invention, an image processing apparatus includes a calculating unit that calculates at least one of a tangent-line direction and a normal-line direction of an edge around a target pixel in an input image by using a direction and a magnitude of a gradient of pixel values of pixels that neighbor the target pixel in the input image; a converting unit that converts coordinates of pixels around the target pixel into a rotated coordinate system by rotating the axes according to an angle between a horizontal direction of the input image and the tangent-line direction of the edge or the normal-line direction of the edge; and a fitting unit that performs a fitting process to fit a local gradient around the target pixel, on the rotated coordinate system, into a curved-plane model by the method of least-squares, and an outputting process to obtain a reconstructed pixel value of the target pixel by using the curved-plane model.

**[0007]**According to another aspect of the present invention, an image processing method includes calculating at least one of a tangent-line direction and a normal-line direction of an edge around a target pixel in an input image by using a direction and a magnitude of a gradient of pixel values of pixels that neighbor the target pixel in the input image; converting coordinates of pixels around the target pixel into a rotated coordinate system by rotating the axes according to an angle between a horizontal direction of the input image and the tangent-line direction of the edge or the normal-line direction of the edge; and performing a fitting process to fit a local gradient around the target pixel, on the rotated coordinate system, into a curved-plane model by the method of least squares, and an outputting process to obtain a reconstructed pixel value of the target pixel by using the curved-plane model.

**[0008]**A computer program product according to still another aspect of the present invention causes a computer to perform the method according to the present invention.

**BRIEF DESCRIPTION OF THE DRAWINGS**

**[0009]**FIG. 1 is a diagram illustrating an image processing apparatus according to a first embodiment of the present invention;

**[0010]**FIG. 2 is a diagram illustrating an image processing unit according to the first embodiment;

**[0011]**FIG. 3 is a flowchart of operations performed by the image processing unit according to the first embodiment;

**[0012]**FIG. 4 is a drawing for explaining a relationship between a two-dimensional Gaussian function and the tangent-line direction and the normal-line direction of an edge;

**[0013]**FIG. 5 is a drawing for explaining a rotation angle formed by an x-axis of an image and a long-axis direction of a two-dimensional Gaussian function;

**[0014]**FIG. 6 is a flowchart of operations in a curved-plane fitting process performed by the image processing unit according to the first embodiment;

**[0015]**FIG. 7A is a drawing illustrating an original image;

**[0016]**FIG. 7B is a drawing illustrating the shapes of two-dimensional Gaussian functions at points in the original image;

**[0017]**FIGS. 8A and 8B are drawings illustrating results of a fitting process performed with respect to x-y axes according to a conventional kernel regression method;

**[0018]**FIGS. 8C and 8D are drawings illustrating results of a fitting process performed with respect to u-v axes;

**[0019]**FIG. 9 is a drawing for explaining differences between the conventional method and a method according to the first embodiment;

**[0020]**FIG. 10 is a diagram illustrating an image processing unit according to a second embodiment of the present invention;

**[0021]**FIG. 11 is a flowchart of operations performed by the image processing unit according to the second embodiment;

**[0022]**FIG. 12 is a drawing for explaining an image feature classification by Harris;

**[0023]**FIG. 13 is a diagram illustrating an image processing unit according to a third embodiment of the present invention;

**[0024]**FIG. 14 is a flowchart of operations performed by the image processing unit according to the third embodiment;

**[0025]**FIG. 15 is a diagram illustrating an image processing unit according to a fourth embodiment of the present invention;

**[0026]**FIG. 16 is a flowchart of operations performed by the image processing unit according to the fourth embodiment;

**[0027]**FIG. 17 is a diagram illustrating an image processing unit according to a fifth embodiment of the present invention; and

**[0028]**FIG. 18 is a flowchart of operations performed by the image processing unit according to the fifth embodiment.

**DETAILED DESCRIPTION OF THE INVENTION**

**[0029]**Exemplary embodiments of the present invention will be explained, starting with a first embodiment of the present invention. As shown in FIG. 1, an image processing apparatus 100 includes an input interface unit 101, an image processing unit 102, a storage unit 103, and an output interface unit 104.

**[0030]**The input interface unit 101 is connected to an input device that inputs an image to the image processing apparatus 100. The input interface unit 101 obtains the input image from the input device. The image processing unit 102 performs processes such as a filtering process on the input image. By performing the processes, the image processing unit 102 generates an image from which noises have been eliminated. The storage unit 103 stores therein, for example, the input image that has been obtained by the input interface unit 101 and the image that has been processed by the image processing unit 102. The output interface unit 104 is connected to an output device that outputs images. The output interface unit 104 outputs the images that have been stored in the storage unit 103 to the output device.

**[0031]**One or both of the input device and the output device may be provided on the outside of the image processing apparatus 100 or on the inside of the image processing apparatus 100.

**[0032]**As shown in FIG. 2, an image processing unit 102a that corresponds to the image processing unit 102 shown in FIG. 1 includes an calculating unit 201, a parameter calculator 202, a converting unit 203, and a fitting unit 204.

**[0033]**Next, operations performed by the image processing unit 102a shown in FIG. 2 will be explained with reference to FIG. 3. In the following sections, a position in an input image will be expressed as x (where xεΩ), whereas a set made up of the entirety of positions in the input image will be expressed as Ω (where Ω.OR right.R

^{2}), while a pixel value in the position x in the input image will be expressed as I(x). The pixel value may be, for example, a scalar value (e.g., a luminance value) or a vector value (e.g., a Red/Green/Blue [RGB] color signal). A transposition of a matrix or a vector will be expressed by adding a superscript "T" to the matrix or the vector. Num(N) denotes the number of elements in a set N.

**[0034]**At step S301, for each of the pixels in the input image, the calculating unit 201 calculates a direction and a magnitude of the gradient of a pixel value in a surrounding area of the pixel. According to the first embodiment, an example will be explained in which the calculating unit 201 performs a discretized first-order derivative operation to calculate the direction and the magnitude of the gradient of the pixel value. In the discretized first-order derivative operation, it is possible to use, for example, a Sobel operator. In the case where a Sobel operator is used, the calculating unit 201 performs calculations as shown in Expressions (1) below.

**d x**( x ) = [ - 101 - 202 - 101 ] * I ( x ) d y ( x ) = [ - 1 - 2 - 1 0 0 0 1 2 1 ] * I ( x ) ( 1 ) ##EQU00001##

**[0035]**In Expressions (1), d

_{x}(x) denotes an x-direction derivative value in the position x, whereas d

_{y}(x) denotes a y-direction derivative value in the position x. The symbol "*" denotes a convolution operation. It is possible to express the value d

_{x}(x) by using Expression (2) shown below.

**d**

_{x}(x)=-I(x+(-1,-1)

^{T})+I(x+(1,-1)

^{T})-2I(x+(-1,0)

^{T})+2I(x+(- 1,0)

^{T})-I(x+(-1,1)

^{T})+I(x+(1,1)

^{T}) (2)

**[0036]**It is acceptable to perform a discretized derivative operation that uses any other elements besides the Sobel operator. For example, it is acceptable to use any of the followings: a forward difference, a backward difference, and a central difference.

**[0037]**At step S302, the parameter calculator 202 calculates image feature parameters indicating the direction and the magnitude of an edge in the position x, by using d

_{x}(x) and d

_{y}(x). First, according to the direction and the magnitude of the edge, the parameter calculator 202 calculates a two-dimensional Gaussian function that is expressed with an anisotropic Gaussian distribution. It is possible to define the two-dimensional Gaussian function as shown in Expressions (3) below, by using a structure tensor H(x) of the derivative value.

**k**( x , s ) = exp ( - 1 h 2 s T H ( x ) s ) H ( x ) = [ d x ( x ) 2 d x ( x ) d y ( x ) d x ( x ) d y ( x ) d y ( x ) 2 ] ( 3 ) ##EQU00002##

**[0038]**In Expressions (3), s (where sεN) denotes the position of a point positioned in a predetermined area (hereinafter, a "local neighborhood") that is centered around the position x. The character "h" (where h>0) denotes a standard deviation of the anisotropic Gaussian distribution. The two-dimensional Gaussian function is strongly affected by the component of the edge in the normal-line direction. As shown in FIG. 4, the two-dimensional Gaussian function has an ellipsoidal shape in which the direction exhibiting a small change in the pixel value is substantially parallel to the long axis, whereas the direction exhibiting a large change in the pixel value is substantially parallel to the short axis. The sharper the edge is, the shorter is the minor axis of the ellipsoidal shape of the two-dimensional Gaussian function (i.e., the ellipse is flattened in the tangent-line direction of the edge). It is possible to calculate the image feature parameters from the structure tensor H(x) by using Expressions (4) below.

**λ ± = C xx + C yy 2 ± ( C xx + C yy ) 2 4 + C xy 2 θ = { π 4 if ( C xx = C yy ) ( C xy > 0 ) - π 4 if ( C xx = C yy ) ( C xy < 0 ) 0 if C xx = C yy = C xy = 0 1 2 tan - 1 ( 2 C cy C xx - C yy ) otherwise ( 4 ) ##EQU00003##**

**[0039]**In this situation, H(x) can be expressed as shown in Expression (5) below.

**H**( x ) = [ d x ( x ) 2 d x ( x ) d y ( x ) d x ( x ) d y ( x ) d y ( x ) 2 ] = [ C xx C xy C xy C yy ] ( 5 ) ##EQU00004##

**[0040]**As shown in FIG. 5, a rotation angle θ is an angle formed by the x axis of the image and the long-axis direction of the two-dimensional Gaussian function. "λ.sub.+" denotes the length of the major axis of the ellipse representing the two-dimensional Gaussian function, whereas "λ.sub.-" denotes the length of the minor axis thereof. It should be noted that "λ.sub.+" and "λ.sub.-" are fixed values for the structure tensor. The long axis of the two-dimensional Gaussian function substantially coincides with the tangent-line direction of the edge. Also, the short axis of the two-dimensional Gaussian function substantially coincides with the normal-line direction of the edge.

**[0041]**It should be noted that by determining any one of a tangent-line direction and a normal-line direction of the edge, the other is determined in a one-to-one correspondence. Therefore, it is possible to use an angle θ' between an x-axis of the image and a short-axis direction of a two-dimensional Gaussian function instead of the rotation angle θ.

**[0042]**If no further arrangement were made, it would not be possible to calculate the image feature parameters in a stable manner due to the noises contained in the image. Thus, it is acceptable to use a structure tensor obtained by performing a convolution operation with respect to a point positioned within the local neighborhood N that is centered around the position x, as shown in Expression (6) below.

**H**( x ) = 1 Num ( N ) s .di-elect cons. N [ d x ( x + s ) 2 d x ( x + s ) d y ( x + s ) d x ( x + s ) d y ( x + s ) d y ( x + s ) 2 ] ( 6 ) ##EQU00005##

**[0043]**The local neighborhood N may have an arbitrary shape. For example, it is acceptable to use a rectangular area corresponding to a 5-by-5 tap (i.e., five pixels by five pixels; hereinafter, the notation of "pixels" may be omitted) that is centered around the position x, as the local neighborhood N.

**[0044]**At step S303, according to the rotation angle θ, the converting unit 203 performs a coordinate converting process to convert the coordinates of the position s (hereinafter, the "local coordinates s") within the local neighborhood N with respect to the position x to local coordinates u expressed with rotated coordinates. It is possible to express the coordinate converting process to convert the x-y coordinates of the image into u-v local coordinates of the two-dimensional Gaussian function by using Expressions (7) below.

**u**= R - 1 ( θ ) s R - 1 ( θ ) = [ cos θ sin θ - sin θ cos θ ] ( 7 ) ##EQU00006##

**[0045]**In this situation, u=(u, v)

^{T}denotes the local coordinates of the two-dimensional Gaussian function.

**[0046]**At step S304, the fitting unit 204 calculates parameters for a curved plane used in a fitting process, by performing a curved-plane fitting process that employs a least-squares method. In other words, the fitting unit 204 performs a fitting process to fit a local gradient around the target pixel into a curved-plane model by the method of least-squares for each of pixels of the input image, and an outputting process to obtain a reconstructed pixel value of the target pixel by using the curved-plane model.

**[0047]**Next, a curved-plane fitting process that employs an n'th-order polynomial curved-plane model, which is disclosed in the reference 1, will be explained. For example, the n'th-order polynomial curved-plane model can be expressed by using Expression (8) shown below.

**a**

_{0}+a

_{1}s+a

_{2}t+a

_{3}s

^{2}+a

_{4}st+a

_{5}t

^{2}+ . . . (8)

**[0048]**In Expression (8), s=(s, t)

^{T}denotes the local coordinates. The curved-plane fitting process using the curved-plane model is performed with respect to the local neighborhood N, while using the position x as the center. An output pixel value obtained after the curved-plane fitting process has been performed can be expressed as I(x)=a

_{0}.

**[0049]**This curved-plane fitting process that is disclosed in the reference 1 has problems as descried below.

**[0050]**For example, let us discuss an edge that extends in a diagonal direction. To perform a fitting process on the edge by using a quadratic (i.e., second-order) curved plane, it is necessary to have all the parameters a

_{0}, a

_{1}, a

_{2}, a

_{3}, a

_{4}, and a

_{5}. In contrast, to perform a fitting process on an edge extending in a longitudinal direction, only the parameters a

_{0}, a

_{1}, and a

_{3}are necessary, because the t component of the local coordinates is not necessary for the edge extending in the longitudinal direction. Similarly, to perform a fitting process on an edge extending in a transversal direction, only the parameters a

_{0}, a

_{2}, and a

_{5}are necessary.

**[0051]**As explained here, the fitting process disclosed in the specification of United States Patent Application Publication No. 2007/0047838 (cf. the pamphlet of International Publication No. 2007/027893) is dependent on the direction of each edge. When the number of parameters that are required in the fitting process increases, there is a possibility that the stability of the fitting process may be lowered. In an attempt to cover all the directions, more parameters than necessary will be used, and there is a possibility that over-fitting may occur. The level of stability of the fitting process that employs the least-squares method is determined by the number of parameters to be estimated and the number of sample points that can be fitted. When more parameters than necessary with respect to the number of sample points are used, the fitting process becomes unstable.

**[0052]**The long-axis direction of the two-dimensional Gaussian function corresponds to the tangent-line direction of the edge. The short-axis direction of the two-dimensional Gaussian function corresponds to the normal-line direction of the edge. The change in the pixel value is large in the normal-line direction of the edge and is small in the tangent-line direction of the edge. When this characteristic is applied to the fitting process using a curved plane, the number of parameters for the curved plane becomes large, because the change in the pixel value is large in the normal-line direction of the edge. As a result, the degree of freedom becomes higher, and it is therefore possible to perform the fitting process with a higher level of precision. In contrast, in the tangent-line direction of the edge, the number of parameters for the curved plane does not have to be large, because the change in the pixel value is small. Accordingly, the curved-plane model can be expressed by using Expression (9) shown below.

**a**

_{0}+a

_{1}v+a

_{2}v

^{2}+ . . . (9)

**[0053]**In this situation, the local coordinates u=(u, v)

^{T}of the two-dimensional Gaussian function are used. The character "u" denotes the long axis of the two-dimensional Gaussian function, whereas the character "v" denotes the short axis of the two-dimensional Gaussian function. In the present example, the degree of freedom of the curved plane is specified only in the short-axis direction of the two-dimensional Gaussian function, while a 0th-order polynomial is used for the long-axis direction. The sharpness of the edge is adjusted in the short-axis direction, while denoising performance (i.e., to eliminate the noises) is improved in the long-axis direction. By using the curved-plane model based on the rotation angle θ, it is possible to realize a fitting process that is not dependent on the direction of the edge. In addition, it is possible to enhance the sharpness of the edge by using fewer parameters than in the example disclosed in the reference 1. Thus, it is possible to improve the level of stability of the fitting process even if the same sample points are used.

**[0054]**For example, according to the technique disclosed in the reference 1, it is necessary to use six parameters to express an edge with a level of precision of a quadratic curved plane. In contrast, according to the first embodiment, only three parameters are necessary. As another example, according to the technique disclosed in the reference 1, it is necessary to use fifteen parameters to express an edge with a level of precision of a quartic (i.e., fourth-order) curved plane. In contrast, according to the first embodiment, only five parameters are necessary. As explained here, with regard to the number of required parameters, the higher the degree of freedom of the curved plane is, the larger is the difference between the conventional technique and the technique according to the first embodiment of the present invention.

**[0055]**The curved-plane fitting process is performed by using the least-squares method. It is possible to define the curved-plane model as shown in Expression (10) below.

**f**( u ) = ( 1 v v 2 v 3 v 4 ) [ a 0 a 1 a 2 a 3 a 4 ] = p ( u ) a ( 10 ) ##EQU00007##

**[0056]**In Expression (10), a quartic polynomial curved-plane model is shown. However, it is acceptable to use a polynomial curved model of any order selected out of 0th to 5th and 7th and higher. Alternatively, instead of using a polynomial, it is acceptable to use a curved-plane model based on a sine wave, as shown in Expression (11) below.

**f**( u ) = ( 1 sin w 0 v sin 2 w 0 v sin 3 w 0 v sin 4 w 0 v ) [ a 0 a 1 a 2 a 3 a 4 ] = p ( u ) a ( 11 ) ##EQU00008##

**[0057]**w

_{0}: REFERENCE FREQUENCY

**[0058]**The pixel value of the pixel in the position s within the local neighborhood N centered around the position x will be expressed as I(x+s) (where sεN). The coordinate conversion applied to the local coordinates s according to the rotation angle θ can be realized by performing a coordinate converting step using a rotating matrix while using Expressions (12) shown below.

**u**= R - 1 ( θ ) s R - 1 ( θ ) = [ cos θ sin θ - sin θ cos θ ] ( 12 ) ##EQU00009##

**[0059]**By using Expressions (12), the pixel value I(x+s) and the curved plane f(R

^{-1}(θ)s) are brought into correspondence with each other. The least-squares method is a method for obtaining a parameter that makes the squared error in this correspondence the smallest and can be defined as shown in Expressions (13) below.

**a**^ ( x ) = min a E ( x , a ) E ( x , a ) = s .di-elect cons. N k ( x , s ) I ( x + s ) - f ( R - 1 ( θ ) s ) 2 = s .di-elect cons. N k ( x , s ) I ( x + s ) - p ( R - 1 ( θ ) s ) a 2 ( 13 ) ##EQU00010##

**[0060]**a(x) IS WRITTEN AS a (x) IN THE SPECIFICATION

**[0061]**In Expressions (13), a a (x) is a parameter used in the fitting process that employs the least-squares method. k(x, s) denotes a weight applied to the point s. In the present example, a two-dimensional Gaussian function is used. The local neighborhood N may have any arbitrary shape. For example, it is acceptable to use a rectangular area corresponding to a 5-by-5 tap that is centered around the position x, as the local neighborhood N. In the present example, to simplify the explanation, Expressions (13) will be expressed in a matrix format as shown in Expressions (14) below.

**E**( x , a ) = ( Y - P a ) T W ( Y - P a ) Y = [ I ( x + s 0 ) I ( x + s n ) ] W = [ k ( x , s 0 ) 0 0 0 0 0 0 k ( x , s n ) ] P = [ p ( R - 1 ( θ ) s 0 ) p ( R - 1 ( θ ) s n ) ] ( 14 ) ##EQU00011##

**[0062]**In this situation, points within the local neighborhood N are expressed as N={s

_{0}, . . . , s

_{n}}. When the matrix format is used, it is possible to find a solution to the least-squares method in a one-to-one correspondence by performing a matrix calculation as shown in Expression (15) below.

**a**(x)=(P

^{TWP})

^{-1}P

^{TWY}(15)

**[0063]**Expression (15) is called a normal equation. When a linear least-squares method is used, the normal equation provides the optimal solution. It is possible to calculate values for an inverse matrix by using, for example, a Lower Upper (LU) decomposition or a singular value decomposition. Let us assume that a a (x) has been calculated as shown in Expression (16) below.

**a**(x)=(a

_{0}(x),a

_{1}(x),a

_{2}(x),a

_{3}(x),a

_{4}(x))

^{T}(16)

**[0064]**The output pixel obtained after the fitting process has been performed can be calculated by using Expression (17) shown below.

**a**

_{0}(x) (17)

**[0065]**Next, operations performed in the curved-plane fitting step at step S304 will be explained, with reference to FIG. 6. At step S601, the fitting unit 204 calculates a matrix P according to Expressions (14). At step S602, the fitting unit 204 calculates a matrix W according to Expressions (14) by using the image feature parameters shown in Expressions (4). At step S603, the fitting unit 204 calculates (P

^{TWP})

^{-1}by using an LU decomposition, a singular value decomposition, or the like. At step S604, the fitting unit 204 calculates a a (x) according to Expression (15).

**[0066]**Next, a result of a fitting process performed by using the conventional kernel regression method and a result of the fitting process according to the first embodiment of the present invention will be explained with reference to FIGS. 7A, 7B, and 8A to 8D.

**[0067]**FIGS. 8A and 8B are drawings illustrating results obtained by performing a curved-plane fitting process on the image shown in FIG. 7B by using the least-squares method and performing a first-order derivative operation in the x direction and in the y direction, respectively. By referring to FIGS. 8A and 8B, it is understood that the curve parameters are distributed to the axes, while the model parameters are dependent on the rotation angle of the two-dimensional Gaussian function. As a result, to reproduce the edges in all the directions at the same level, it is necessary to have all the parameters on the quadratic curved plane.

**[0068]**FIGS. 8C and 8D are drawings illustrating results obtained by performing a curved-plane fitting process on the image shown in FIG. 7B by using the least-squares method and performing a first-order derivative operation in the u direction (i.e., the long-axis direction of the two-dimensional Gaussian function) and in the v direction (i.e., the short-axis direction of the two-dimensional Gaussian function), respectively. By referring to FIGS. 8C and 8D, it is understood that the axes in the curved-plane model coincide with the main component axes of the edges. As a result, the components of the edges are concentrated on the v axis (i.e., the short axis of the two-dimensional Gaussian function). Accordingly, to reproduce the edges in all the directions, using only the v axis is sufficient.

**[0069]**Next, differences between the conventional method and the method according to the first embodiment of the present invention will be explained, with reference to FIG. 9. According to the conventional method, the fitting process based on kernel regression is performed on the x-y axes. In contrast, according to the first embodiment of the present invention, the fitting process based on kernel regression is performed on the u-v axes. Because the u-v axes are the main component axes of the edges, it is possible to distribute the degree of freedom in the maximum-amplitude direction (i.e., the main components) of the information.

**[0070]**As explained above, according to the first embodiment, it is possible to effectively eliminate noises from the image while maintaining the shapes and the edges in the image.

**[0071]**Next, a second embodiment of the present invention will be explained. Some of the constituent elements of an image processing unit 102b according to the second embodiment shown in FIG. 10 that are the same as those of the image processing unit 102a shown in FIG. 2 will be referred to by using the same reference characters. The second embodiment is different from the first embodiment in that the image processing unit 102b includes a selecting unit 1001.

**[0072]**According to the first embodiment, the filtering process that is excellent in terms of reproducibility of the edges is performed by rotating the curved-plane model in the tangent-line directions of the edges. The reason for this can be explained as follows: In the edge portions, the information is concentrated in the short-axis direction of the ellipse of the two-dimensional Gaussian function (i.e., the normal-line direction of the edge) as explained above. As a result, the curved-plane in which the degree of freedom is given to the short-axis component is fitted well.

**[0073]**It should be considered, however, that an image contains not only edge areas, but also flat areas and corner areas (e.g., corners and pointed extremities). In such areas, the information is not necessarily concentrated on the short-axis component. According to the second embodiment, areas are classified according to image features, so that an appropriate one of curved-plane models can be assigned according to the classification. According to the second embodiment, the image features are obtained by using an x-direction derivative value and a y-direction derivative value. More specifically, the image features are obtained by using a structure tensor, which is also explained in the description of the first embodiment.

**[0074]**As shown in FIG. 11, the operations performed by the image processing unit 102b shown in FIG. 10 are different from the operations shown in FIG. 3 in, at least, that a curved-plane model selecting step at step S1103 is performed before the coordinate converting step and the curved-plane fitting step. The other steps will be explained while a focus is placed on the differences from FIG. 3.

**[0075]**At step S1102, the tangent-line direction of the edge as well as the parameters corresponding to the long axis and the short axis of the ellipse that express local features of the image are calculated by using a structure tensor. Harris et al. have presented a feature classification of images based on a structure tensor (cf. C. Harris and M. Stephens (1988), "A Combined Corner and Edge Detector", Proceedings of the 4th Alvey Vision Conference, pp. 147-151).

**[0076]**According to the feature classification, when fixed values of the structure tensor are expressed as λ.sub.+ and λ.sub.-, each of the portions in an image can be classified as an edge area ("Edge"), a flat area ("Flat"), or a corner area ("Corner") as shown in FIG. 12, according to the fixed values λ.sub.+ and λ.sub.-. When one of the fixed values λ.sub.+ and λ.sub.- is large and the other is small, the ellipse of the two-dimensional Gaussian function has a flattened shape. In that situation, the corresponding image portion is classified as an edge area. When both of the fixed values are large, the ellipse of the two-dimensional Gaussian function has an isotropic circular shape and is small. In that situation, the corresponding image portion is classified as a corner area (including a corner or a pointed extremity). When both of the fixed values are small, the ellipse of the two-dimensional Gaussian function has an isotropic circular shape and is large. In that situation, the corresponding image portion is classified as a flat area.

**[0077]**The curved-plane model according to the first embodiment is a curved-plane model that uses only the short-axis component of the ellipse of the two-dimensional Gaussian function. This curved-plane model is based on the notion that the information is concentrated in the normal-line directions of the edges in the edge areas. Thus, the model is suitable for the edge areas among the areas explained above. For example, according to the first embodiment, an edge area curved-plane model as shown in Expression (18) below may be used.

**f**

_{Edge}(u)=a

_{0}+a

_{1}v+a

_{2}v

^{2}+a

_{3}v

^{3}+a

_{4}v

^{4}(18)

**[0078]**In contrast, in corner areas and flat areas, the ellipse of the two-dimensional Gaussian function is isotropic, and the information is not necessarily concentrated on the short axis (i.e., the v axis). Thus, it is more appropriate to use both the u axis and the v axis in the corner areas and the flat areas. Of these areas, with regard to the corner areas, because the change in the pixel value is large, it is more appropriate to give a higher degree of freedom to the curved-plane model. For example, a corner area curved-plane model as shown in Expression (19) below may be used.

**f**

_{corner}(u)=a

_{0}+a

_{1}u+a

_{2}u

^{2}+a

_{3}u

^{3}+a

_{4}u.su- p.4+a

_{5}v+a

_{6}v

^{2}+a

_{7}v

^{3}+a

_{8}v

^{8}(19)

**[0079]**In contrast, because it is desirable to keep the noises as little as possible in the flat areas, a flat area curved-plane model based on a low-order polynomial as shown in Expression (20) below may be used.

**f**

_{Flat}(u)=a

_{0}+a

_{1}u+a

_{2}u

^{2}+a

_{3}v+a

_{4}v

^{2}(20)

**[0080]**At step S1103, the selecting unit 1001 classifies a target pixel as one of a plurality of predetermined classes (i.e., areas). The selecting unit 1001 further selects one of the curved-plane models that respectively correspond, in a one-to-one correspondence, to the plurality of classes used in the classification, as the curved-plane model for the target pixel. More specifically, the selecting unit 1001 classifies the target image based on the fixed values λ.sub.+ and λ.sub.- of the structure tensor. The classification process is performed according to, for example, the classification explained with reference to FIG. 12. The selecting unit 1001 selects the curved-plane model as explained above according to the result of the classification process.

**[0081]**At step S1105, the fitting unit 204 performs the fitting process that employs the least-squares method, by using the curved-plane model that has been selected at step S1103.

**[0082]**Next, a third embodiment of the present invention will be explained. Some of the constituent elements of an image processing unit 102c according to the third embodiment shown in FIG. 13 that are the same as those of the image processing unit 102a shown in FIG. 2 will be referred to by using the same reference characters. The third embodiment is different from the first embodiment in that the image processing unit 102c includes a filter selecting unit 1301 and a convolution operating unit 1302, instead of the converting unit 203 and the fitting unit 204.

**[0083]**According to the first embodiment, it is necessary to solve the normal equation for each of the pixels that are the targets of the filtering process. More specifically, it is necessary to calculate the values for the inverse matrix by using an LU decomposition or a singular value decomposition. According to the third embodiment, for the purpose of reducing the processing cost, results obtained by solving the normal equation in advance are stored in a Look-Up Table (LUT). With this arrangement, it is possible to enhance viability in a circuit or the like.

**[0084]**The operations shown in FIG. 14 that are performed by the image processing unit 102c shown in FIG. 13 are different from the operations explained with reference to FIG. 3 in, at least, that the procedure includes a filter selecting step at step S1403 and a convolution operating step at step S1404, instead of the coordinate converting step at step S303 and the curved-plane fitting step at step S304. The other steps are the same as those shown in FIG. 3.

**[0085]**At step S1403, the filter selecting unit 1301 selects an appropriate filter out of the LUT showing the results obtained by solving the normal equation, based on the image feature parameters that have been calculated at step S1402.

**[0086]**The normal equation is obtained by using Expression (15). As shown in Expressions (14), Y denotes a pixel value and varies depending on the input image. The value (P

^{r}WP)

^{-1}P

^{r}W is dependent only on the image feature parameters λ.sub.+, λ.sub.-, and θ and is not dependent on the image. The two-dimensional Gaussian function can be expressed by using self-correlation coefficients for a derivative of the input image, as shown in Expressions (21).

**k**( x , s ) = exp ( - 1 h 2 s T H ( x ) s ) H ( x ) = [ d x ( x ) 2 d x ( x ) d y ( x ) d x ( x ) d y ( x ) d y ( x ) 2 ] ( 21 ) ##EQU00012##

**[0087]**By rewriting Expressions (21) with the image feature parameters, Expression (22) can be obtained.

**H**( x ) = [ λ + cos 2 θ + λ - sin 2 θ ( λ + - λ - ) sin θ cos θ ( λ + - λ - ) sin θ cos θ λ + sin 2 θ + λ - cos 2 θ ] = H ( λ + , λ - , θ ) ( 22 ) ##EQU00013##

**[0088]**It is also possible to rewrite the two-dimensional Gaussian function as shown in Expression (23) below.

**k**( λ + , λ - , θ , s ) = exp ( - 1 h 2 s T H ( λ + , λ - , θ ) s ) ( 23 ) ##EQU00014##

**[0089]**It is possible to express the matrix W as shown in Expression (24) below.

**W**( λ + , λ - , θ ) = [ k ( x , s 0 ) 0 0 0 0 0 0 k ( x , s n ) ] = [ k ( λ + , λ - , θ , s 0 ) 0 0 0 0 0 0 k ( λ + , λ - , θ , s n ) ] ( 24 ) ##EQU00015##

**[0090]**It is understood that the matrix W is dependent only on the image feature parameters. Similarly, it is possible to express the matrix P as shown in Expression (25) below.

**P**( θ ) = [ p ( R - 1 ( θ ) s 0 ) p ( R - 1 ( θ ) s n ) ] ( 25 ) ##EQU00016##

**[0091]**It is understood that the matrix P is dependent only on the image feature parameters. Accordingly, it is understood that Expression (26) is also dependent only on the image feature parameters.

**X**(λ.sub.+,λ.sub.-,θ)=(P(θ)

^{TW}(λ.sub.+,.l- amda..sub.-,θ)P(θ))

^{-1}P(θ)

^{TW}(λ.sub.+,.lam- da..sub.-,θ) (26)

**[0092]**By calculating X(λ.sub.+, λ.sub.-, θ)

_{1}(where 1=0, . . . , L), in advance, with respect to an arbitrary set of image feature parameters that have been discretized such as (λ.sub.+, λ.sub.-, θ)

_{1}(where 1=0, . . . , L), it is possible to obtain the solution by using Expression (27) without performing any additional calculation.

**a**(x)=X(λ.sub.+,λ.sub.-,θ)

_{1}Y (27)

**[0093]**In other words, at the filter selecting step at step S1403, the values X(λ.sub.+, λ.sub.-, θ)

_{1}(where 1=0, . . . , L) are calculated in advance with respect to (λ.sub.+, λ.sub.-, θ)

_{1}(where 1=0, . . . , L) so that the calculated values are registered into the LUT (i.e., a filter bank). In the actual process, a corresponding one of the values X(λ.sub.+, λ.sub.-, θ)

_{1}is selected out of the LUT, based on the calculated image feature parameters (λ.sub.+, λ.sub.-, θ).

**[0094]**At step S1404, the convolution operating unit 1302 performs a convolution operation with the pixel value vector Y, by using the filter X(λ.sub.+, λ.sub.-, θ)

_{1}that has been selected at the filter selecting step at step S1403. Further, the convolution operating unit 1302 calculates an output pixel to which a curved plane has been fitted by using the least-squares method. More specifically, the convolution operating unit 1302 performs a matrix calculation shown in Expression (28) below.

**a**^ ( x ) = X ( λ + , λ - , θ ) 1 Y = X ( λ + , λ - , θ ) 1 [ I ( x + s 0 ) I ( x + s n ) ] ( 28 ) ##EQU00017##

**[0095]**Next, a fourth embodiment of the present invention will be explained. Some of the constituent elements of an image processing unit 102d according to the fourth embodiment shown in FIG. 15 that are the same as those of the image processing unit 102a shown in FIG. 2 will be referred to by using the same reference characters. The fourth embodiment is different from the first embodiment in that the image processing unit 102d includes a weight calculator 1501.

**[0096]**According to the first and the second embodiments, the filtering process that is suitable for the edges in the input image is performed by using the two-dimensional Gaussian function. However, because it is not possible to express, for example, apex portions of a triangle by using a two-dimensional Gaussian function, the image becomes dull. To cope with this problem, according to the fourth embodiment, the two-dimensional Gaussian function is made robust based on pixel values of the pixels that are in the apex portions of a triangle or the like. As a result, it is possible to solve the problem where, for example, the apex portions become dull.

**[0097]**As shown in FIG. 16, the operations performed by the image processing unit 102d shown in FIG. 15 are different from the operations explained with reference to FIG. 3 in, at least, that the procedure includes a weight calculating step at step S1606 after the curved-plane fitting step at step S1605. The other steps will be explained while a focus is placed on the differences from FIG. 3.

**[0098]**The process performed at step S1605 is basically the same as the process performed according to the first embodiment, except that the fitting unit 204 calculates the matrix W by using Expression (29) shown below.

**W**= [ w ( s 0 ) k ( x , s 0 ) 0 0 0 0 0 0 w ( s n ) k ( x , s n ) ] ( 29 ) ##EQU00018##

**[0099]**At step S1606, the weight calculator 1501 applies a weight to a pixel value in the input image within the local neighborhood, according to the distance from the target pixel that is positioned at the center of the local coordinates. For example, the weight calculator 1501 calculates the weight in the local neighborhood in such a manner that the larger the difference from the pixel value of the target pixel in the input image is, the smaller is the weight (i.e., the smaller the difference is, the larger is the weight). Two-dimensional Gaussian functions are applicable to step edge portions in an image. However, two-dimensional Gaussian functions may not be applicable to extremity portions and corners in some situations. When a fitting process that employs the least-squares method is performed in such areas to which two-dimensional Gaussian functions are not applicable, the image is severely distorted because of out-of-range pixel values to which the function is not applicable. As a result, a problem arises where, for example, corners become dull. The areas having such out-of-range values are assumed to be areas containing pixels each having a pixel value that is different from the pixel value of the target pixel. It is possible to define the weight based on the difference in the pixel values by using a Gaussian function as shown in Expressions (30) below.

**w**( s ) = k σ 1 ( I ( x + s ) - I ( s ) ) k σ 1 ( I ) = exp ( - I T I σ 1 2 ) ( 30 ) ##EQU00019##

**[0100]**In this situation, σ

_{I}(where σ

_{I}>0) denotes a standard deviation of the Gaussian function and serves as a parameter indicating what degree of difference in the pixel values causes the weight to be smaller.

**[0101]**As another example, in a situation where a block distortion occurs (e.g., in an encoded image), the weight calculated by using Expressions (30) also reacts to the block distortion. As a result, it is not possible to solve the problem of the block distortion. To cope with this situation, it is also acceptable to use a deblocking-type weight as shown in Expression (31) below so that the weight based on the difference in the pixel values is not used in block boundary areas.

**w**( s ) = { k σ 1 ( I ( x + s ) - I ( s ) ) WHEN x AND s ARE POINTS IN THE SAME BLOCK 1 OTHERWISE ( 31 ) ##EQU00020##

**[0102]**Next, a fifth embodiment of the present invention will be explained. Some of the constituent elements of an image processing unit 102e according to the fifth embodiment shown in FIG. 17 that are the same as those of the image processing unit 102a shown in FIG. 2 will be referred to by using the same reference characters. The fifth embodiment is different from the first embodiment in that the image processing unit 102e includes a difference calculator 1701.

**[0103]**According to the fifth embodiment, a difference between a pixel value on the curved plane that is fitted according to any of the first to the fourth embodiments and a pixel value in the input image is calculated so that a fitting process is performed again on the calculated difference. With this arrangement, it is possible to enhance reproducibility of, for example, a fine texture.

**[0104]**As shown in FIG. 18, the operations performed by the image processing unit 102e shown in FIG. 17 are different from the operations explained with reference to FIG. 3 in, at least, that the procedure includes a difference calculating step at step S1806, a coordinate calculating step at step S1807, and a curved-plane fitting step at step S1808, after the curved-plane fitting step at step S1805. The other steps will be explained while a focus is placed on the differences from FIG. 3.

**[0105]**In this situation, when the input image is assumed to be made up of a framework component, a texture component, and noises, it is possible to provide a model for the pixel I(x) as shown in Expression (32) below.

**I**(x)=S(x)+T(x)+n(x) (32)

**[0106]**In Expression (32), S(x) denotes a framework component, whereas T(x) denotes a texture component, while n(x) denotes a noise. Expression (32) corresponds to an addition model. It is also acceptable to use a multiplication model as shown in Expression (33) below.

**I**(x)=S(x)T(x)+n(x) (33)

**[0107]**According to the first to the fourth embodiments, the degree of freedom of the curved plane is specified in the normal-line directions of the edges and is not specified in the tangent-line directions of the edges. This arrangement is equivalent to extracting the framework component while ignoring irregularities in the tangent-line directions of the edges. Thus, it is possible to consider the result of the curved-plane fitting process that employs the least-squares method as the framework component of the image as shown in Expression (34) below.

**S**(x)=a

_{0}(x) (34)

**[0108]**At step S1806, the difference calculator 1701 calculates the difference between a pixel value in the input image and a pixel value of the framework component. First, the texture component can be calculated as shown in Expression (35) below, based on Expressions (32) and (34).

**T**(x)=I(x)-a

_{0}(x)-n(x) (35)

**[0109]**From this, it is understood that, to obtain the texture component, it is necessary to obtain the difference between the pixel value in the input image and the pixel value of the framework component. A fitting curved plane can be expressed as shown in Expression (36) below.

**f**(u)=p(u)a (36)

**[0110]**Accordingly, it is possible to calculate the difference by using Expression (37) below.

**r**( x + s ) = I ( x + s ) - f ( R - 1 ( θ ) s ) = I ( x + s ) - p ( R - 1 ( θ ) s ) a ^ ( 37 ) ##EQU00021##

**[0111]**In the present example, s denotes a point within the local neighborhood N.

**[0112]**At step S1808, the fitting unit 204 calculates the texture component by performing, with respect to the difference that has been calculated at step S1806, a curved-plane fitting process that employs the least-squares method on the local coordinates obtained as a result of the coordinate converting process performed at step S1807. It is possible to express a texture curved-plane model by using Expression (38) shown below.

**f r**( u ) = ( 1 u u 2 u 3 u 4 ) [ b 0 b 1 b 2 b 3 b 4 ] = p r ( u ) b ( 38 ) ##EQU00022##

**[0113]**According to the first to the fourth embodiments, the model is specified in the normal-line directions of the edges. In contrast, in the present example, the model is specified in the tangent-line directions of the edges. This arrangement is made so that it is possible to extract the texture component in the tangent-line directions of the edges that are orthogonal to the normal-line directions of the edges based on which the framework component of the image is extracted. It is possible to express the least-squares method applied to the difference by using Expressions (39) shown below.

**b**^ ( x ) = min b E ( x , b ) E ( x , b ) = s .di-elect cons. N k ( x + s ) r ( x , s ) - f r ( R - 1 ( θ ) s ) 2 = s .di-elect cons. N k ( x + s ) r ( x , s ) - p r ( R - 1 ( θ ) s ) b 2 ( 39 ) ##EQU00023##

**[0114]**{circumflex over (b)}(x) IS WRITTEN AS b (x) IN THE SPECIFICATION

**[0115]**By putting Expressions (39) into a matrix format, Expressions (40) below can be obtained.

**E**( x , b ) = ( Y r - P r b ) T W ( Y r - P r b ) Y r = [ r ( x + s 0 ) r ( x + s n ) ] W = [ k ( x , s 0 ) 0 0 0 0 0 0 k ( x , s n ) ] P r = [ p r ( R - 1 ( θ ) s 0 ) p r ( R - 1 ( θ ) s n ) ] ( 40 ) ##EQU00024##

**[0116]**Accordingly, it is possible to express a normal equation as shown in Expression (41) below.

{circumflex over (b)}(x)=P

_{r}

^{TWP}

_{r})

^{-1}P

_{r}

^{TWY}

_{r}(41)

**[0117]**It is possible to calculate values for an inverse matrix by using, for example, an LU decomposition or a singular value decomposition. Let us assume that b (x) has been calculated as shown in Expression (42) below.

{circumflex over (b)}(x)=({circumflex over (b)}

_{0}(x),{circumflex over (b)}

_{1}(x),{circumflex over (b)}

_{2}(x),{circumflex over (b)}

_{3}(x),{circumflex over (b)}

_{4}(x)) (42)

**[0118]**In this situation, the texture component can be expressed by using Expression (43) below.

{circumflex over (b)}

_{0}(x) (43)

**[0119]**The image processing unit 102e adds the curved-plane model and the texture curved-plane model together and generates an output image. In other words, it is possible to express the output image that is obtained after the filtering process has been performed, by using Expression (44) below.

**a**

_{0}(x)+{umlaut over (b)}

_{0}(x) (44)

**[0120]**The present invention is not limited to the exemplary embodiments described above. It is possible to apply modifications to the present invention without departing from the gist thereof. An image processing computer program used by any of the image processing apparatuses according to the embodiments described above to execute the processing steps may be provided as a computer program product as being recorded on a computer-readable recording medium such as a Compact Disk Read-Only Memory (CD-ROM), a Flexible Disk (FD), a Compact Disk Recordable (CD-R), or a Digital Versatile Disk (DVD), in a file that is in an installable format or in an executable format.

**[0121]**Further, another arrangement is acceptable in which the image processing computer program according to any of the embodiments described above is provided as being incorporated in a ROM or the like in advance.

**[0122]**The image processing computer program executed by any of the image processing apparatuses according to the embodiments described above has a module configuration that includes the image processing unit 102 described above. As the actual hardware configuration, the image processing unit 102 is loaded into a main storage device (not shown) when a Central Processing Unit (CPU) (i.e., a processor; not shown) reads and executes the image processing computer program from a storage medium (not shown), so that the image processing unit 102 is generated in the main storage device.

**[0123]**Additional advantages and modifications will readily occur to those skilled in the art. Therefore, the invention in its broader aspects is not limited to the specific details and representative embodiments shown and described herein. Accordingly, various modifications may be made without departing from the spirit or scope of the general inventive concept as defined by the appended claims and their equivalents.

User Contributions:

Comment about this patent or add new information about this topic: