WO2013069555A1 - 画像処理装置および方法、並びにプログラム - Google Patents

画像処理装置および方法、並びにプログラム Download PDF

Info

Publication number
WO2013069555A1
WO2013069555A1 PCT/JP2012/078425 JP2012078425W WO2013069555A1 WO 2013069555 A1 WO2013069555 A1 WO 2013069555A1 JP 2012078425 W JP2012078425 W JP 2012078425W WO 2013069555 A1 WO2013069555 A1 WO 2013069555A1
Authority
WO
WIPO (PCT)
Prior art keywords
image
function
value
error
approximation
Prior art date
Application number
PCT/JP2012/078425
Other languages
English (en)
French (fr)
Inventor
大木 光晴
智経 増野
Original Assignee
ソニー株式会社
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 ソニー株式会社 filed Critical ソニー株式会社
Priority to US14/354,959 priority Critical patent/US20140313284A1/en
Priority to CN201280053874.2A priority patent/CN103918003A/zh
Publication of WO2013069555A1 publication Critical patent/WO2013069555A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/12Panospheric to cylindrical image transformations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/698Control of cameras or camera modules for achieving an enlarged field of view, e.g. panoramic image capture
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/387Composing, repositioning or otherwise geometrically modifying originals
    • H04N1/3876Recombination of partial images to recreate the original image

Definitions

  • the present technology relates to an image processing apparatus, method, and program, and in particular, image processing in which a region in a desired direction can be cut out more easily and quickly when a region in a specific direction of a panoramic image is cut out and displayed.
  • the present invention relates to an apparatus and method, and a program.
  • a technique for generating a wide panoramic image using a plurality of images continuously photographed while rotating the camera is known (see, for example, Patent Document 1).
  • Such a panoramic image is generated by cutting out and synthesizing a part of a plurality of captured images.
  • the present technology has been made in view of such a situation, and enables a region in a desired direction in a panoramic image to be cut out easily and quickly.
  • An image processing apparatus is an image processing apparatus that generates an output image having a predetermined positional relationship with an input image, and that approximates a position on the input image corresponding to a position on the output image.
  • a value data generation unit and for the target area from the first position to the second position on the output image, based on the data, the position of the input image corresponding to the position in the target area is the approximate function
  • an error calculating section that calculates the error when obtained by the above
  • a determining section that determines the target area where the error is a predetermined threshold value or less
  • An image generation unit that generates the output image by obtaining a corresponding position of the input image using a similar function and setting the pixel value of the pixel at the corresponding position as the pixel value of the pixel at the position of the target region; Is provided.
  • the approximation function may be a polynomial approximation function obtained by performing a polynomial expansion around the first position with respect to the function indicating the positional relationship.
  • the approximation function may be a (n-1) th order polynomial approximation function, and the function necessary for calculating the error may be a function obtained by n-order differentiation of the function indicating the positional relationship.
  • the variables defining the positional relationship can be the direction of the output image viewed from a predetermined reference position and the distance from the reference position to the output image.
  • the position on the input image corresponding to the predetermined position on the output image can be the position of the intersection of the input image and a straight line passing through the predetermined position and the reference position.
  • the input image can be an image projected on a spherical surface or an image projected on a cylindrical surface.
  • An image processing method or program is an image processing method or program for generating an output image having a predetermined positional relationship with an input image, the image processing method or program on the input image corresponding to a position on the output image Data related to the extreme value of the function based on a function that is necessary for calculating an error when the position is obtained by an approximate function, and that has a variable that defines the positional relationship and a position on the output image as a variable For the target area from the first position to the second position on the output image, the position of the input image corresponding to the position in the target area is obtained by the approximation function based on the data.
  • the error is calculated, the target area where the error is less than or equal to a predetermined threshold is determined, and the approximate function is used for each position in the determined target area.
  • an error when the position on the input image corresponding to the position on the output image is obtained by an approximation function is calculated. Based on a function that is necessary for calculation and has a variable that defines the positional relationship and a position on the output image as a variable, data relating to the extreme value of the function is generated, and the first data on the output image is generated.
  • the error when the position of the input image corresponding to the position in the target area is obtained by the approximate function is calculated based on the data for the target area from the position to the second position, and the error
  • the target area is determined to be equal to or less than a predetermined threshold, and for each position in the determined target area, a corresponding position of the input image is obtained using the approximation function, and the correspondence That the pixel values of the positions of the pixels by the pixel value of the pixel of the position of the target area, wherein the output image is generated.
  • a region in a desired direction in a panoramic image can be cut out easily and quickly.
  • a wide panoramic image is not often generated as an image projected onto a plane by perspective projection conversion. As such reasons, the peripheral portion of the panoramic image is extremely distorted and a wide image exceeding 180 degrees cannot be expressed. Therefore, usually, a panoramic image is often stored as an image projected onto a spherical surface or an image projected onto a cylindrical surface.
  • the panoramic image When the panoramic image is an image projected on a spherical surface, the panoramic image (two-dimensional image) has a horizontal width of 2 ⁇ and a panoramic image height of ⁇ . That is, when an arbitrary position on the coordinate system of the two-dimensional image (hereinafter referred to as the SxSy coordinate system) is (Sx, Sy), the panoramic image is 0 ⁇ Sx ⁇ 2 ⁇ , ⁇ / 2 ⁇ Sy ⁇ ⁇ . It is an image of a rectangular area of / 2.
  • Xw, Yw, and Zw indicate the Xw coordinate, Yw coordinate, and Zw coordinate in the world coordinate system, respectively.
  • an image in which a spherical surface SP11 having a radius of 1 centered on the origin O of the world coordinate system is developed by equirectangular projection is a panoramic image (two-dimensional image).
  • the right oblique direction, the downward direction, and the left oblique direction indicate the directions of the Xw axis, the Yw axis, and the Zw axis of the world coordinate system, respectively.
  • the position where the Zw axis and the spherical surface SP11 intersect is the origin of the SxSy coordinate system. Therefore, the length of the arc AR11 on the spherical surface SP11 is Sx, and the length of the arc AR12 is Sy. Further, the direction of the straight line L11 passing through the origin O of the world coordinate system is the direction indicated by the expression (1).
  • the panoramic image is an image projected on a cylindrical surface
  • the horizontal width of the panoramic image (two-dimensional image) is 2 ⁇
  • the height of the panoramic image is an arbitrary height H. That is, when an arbitrary position on the coordinate system of the two-dimensional image (hereinafter referred to as CxCy coordinate system) is (Cx, Cy), the panoramic image is 0 ⁇ Cx ⁇ 2 ⁇ , ⁇ H / 2 ⁇ Cy ⁇ H It is an image of a rectangular area of / 2.
  • Xw, Yw, and Zw indicate the Xw coordinate, Yw coordinate, and Zw coordinate in the world coordinate system, respectively.
  • an image obtained by developing a cylindrical surface CL11 that is a side surface of a cylinder having a radius 1 centered on the Yw axis of the world coordinate system is a panoramic image (two-dimensional image).
  • the right oblique direction, the downward direction, and the left oblique direction indicate the directions of the Xw axis, the Yw axis, and the Zw axis of the world coordinate system, respectively.
  • the position where the Zw axis and the cylindrical surface CL11 intersect is the origin of the CxCy coordinate system. Therefore, the length of the arc AR21 on the cylindrical surface CL11 is Cx, and the length of the straight line L21 is Cy. Further, the direction of the straight line L22 passing through the origin O of the world coordinate system is the direction indicated by the expression (2).
  • the number of pixels in the horizontal direction (direction corresponding to the Sx direction or Cx direction) of the display screen of the display device on which the image cut out from the panoramic image is displayed is Wv pixels
  • the pixel numbers Wv and Hv are fixed values. Further, it is assumed that the pixel numbers Wv and Hv are even numbers.
  • the user When displaying a part of a panoramic image on the display device, the user designates which area of the panoramic image is to be displayed. Specifically, for example, the user's line-of-sight direction determined from two angles ⁇ yaw and ⁇ pitch and the focal length Fv are designated by the user.
  • the region of the panoramic image in the line-of-sight direction is displayed at a zoom magnification determined by the focal length.
  • a canvas area having a size of horizontal Wv and vertical Hv is secured on the memory. Then, for each position (Xv, Yv) in the XvYv coordinate system on the canvas area (where ⁇ Wv / 2 ⁇ Xv ⁇ Wv / 2, ⁇ Hv / 2 ⁇ Yv ⁇ Hv / 2), A position (Sx, Sy) on the panoramic image to be satisfied is obtained.
  • the pixel value of the pixel of the panoramic image at the position (Sx, Sy) is written in the corresponding position (Xv, Yv). That is, the pixel value of the pixel at the position (Sx, Sy) of the panoramic image is the pixel value of the pixel at the corresponding position (Xv, Yv) on the canvas area.
  • the image of the canvas area is output as an image of the line-of-sight direction and focal distance designated by the user on the panoramic image.
  • the pseudo code shown in FIG. 4 is executed and the image is displayed on the display device.
  • a canvas area having a size of horizontal Wv and vertical Hv is secured on the memory.
  • a position (Cx, Cy) on the panoramic image to be satisfied is obtained.
  • the image of the canvas area is output as an image of the line-of-sight direction and focal distance designated by the user on the panoramic image.
  • the image obtained by the pseudo code shown in FIGS. 3 and 4 is, for example, the image shown in FIG.
  • the right oblique direction, the downward direction, and the left oblique direction indicate the Xw axis direction, the Yw axis direction, and the Zw axis direction of the world coordinate system, respectively.
  • a virtual screen SC11 is provided in a space on the world coordinate system, and this screen SC11 corresponds to a canvas area secured on the memory when the pseudo code of FIGS. 3 and 4 is executed.
  • the origin O ′ of the XvYv coordinate system with respect to the screen SC11 is located at the center of the screen SC11.
  • the axis AX11 is a straight line connecting the origin O of the world coordinate system and the origin O ′ of the XvYv coordinate system, and the length of the axis AX11, that is, the distance from the origin O to the origin O ′ is the focal length Fv. Yes.
  • the direction of the axis AX11 is a line-of-sight direction determined from the angle ⁇ yaw and the angle ⁇ pitch specified by the user, that is, the direction in which the screen SC11 is located.
  • the user designates the viewing direction determined from the angle ⁇ yaw and the angle ⁇ pitch and the focal length Fv. Therefore, when the user designates the viewing direction determined from the angle ⁇ yaw and the angle ⁇ pitch and the focal length Fv, the user designates the position of the screen SC11 on which the image cut out from the panoramic image is displayed.
  • the screen SC11 is a plane orthogonal to the axis AX11, and the size of the screen SC11 is Wv and Hv. That is, in the XvYv coordinate system, an area in the range of ⁇ Wv / 2 ⁇ Xv ⁇ Wv / 2 and ⁇ Hv / 2 ⁇ Yv ⁇ Hv / 2 becomes an area of the screen SC11 (becomes an effective area).
  • an arbitrary position (Xv, Yv) on the screen SC11 in the XvYv coordinate system is represented by the following expression (5) on the world coordinate system.
  • each position (Sx, Sy) on the wide panoramic image in the SxSy coordinate system flies toward the origin O of the world coordinate system from the direction indicated by Equation (1) in the world coordinate system. Light is projected. Similarly, light flying toward the origin O from the direction indicated by the formula (2) in the world coordinate system is projected at each position (Cx, Cy) on the panoramic image in the CxCy coordinate system.
  • the determination of the pixel value of the pixel at each position (Xv, Yv) on the screen SC11 by the equation (3) or the equation (4) is from a certain direction toward the origin O in the world coordinate system. This is equivalent to projecting the incoming light to a position that intersects the screen SC11.
  • an image output by executing the pseudo code shown in FIG. 3 or FIG. 4 is an image (panoramic image) projected on the screen SC11. That is, the user can view the image (landscape) projected on the virtual screen SC11 on the display device by designating the viewing direction determined from the angle ⁇ yaw and the angle ⁇ pitch and the focal length Fv. .
  • the image projected on the screen SC11, that is, the image displayed on the display device is an image of a partial region of the panoramic image cut out from the wide panoramic image.
  • the angle ⁇ yaw is 0 ° or more and less than 360 °
  • the angle ⁇ pitch is ⁇ 90 ° or more and less than 90 °.
  • the possible value of the focal length Fv is, for example, 0.1 or more and 10 or less.
  • the calculation amount for obtaining the panoramic image area projected on each position on the screen is reduced, and the processing speed is improved.
  • the error due to approximation is evaluated so that the worst error due to approximation calculation does not exceed a desired threshold value so that a high-quality image can be presented.
  • calculation is performed by a certain polynomial approximation.
  • the calculation error of the polynomial approximation becomes large to some extent, that is, when the calculation error exceeds a predetermined threshold, the calculation is performed with another polynomial approximation from the position where the calculation error exceeds the predetermined threshold. It will be done.
  • the calculation error due to the polynomial approximation is evaluated, and the polynomial approximation used for the calculation is switched according to the evaluation.
  • a region in a desired direction in the panoramic image can be cut out easily and quickly, and a higher quality image can be presented as the cut out image.
  • the function Ga (L) obtained by approximating the function G (L) to the (n ⁇ 1) th order polynomial is a function represented by the following expression (7).
  • Expression (8) indicates an error between the function G (L) and the function Ga (L) obtained by approximating the function G (L) with an (n ⁇ 1) th order polynomial.
  • the closed interval [0, L] can be obtained even if the function Ga (L), which is an approximate function, is used instead of the function G (L).
  • the calculation error due to the approximation is at most ⁇ at all the positions.
  • n is a fixed value, for example, n is a value of about 3 or 4.
  • Expressions (3) and (4) are proportional expressions, and even if only the elements on the right side of these expressions are divided by the focal length Fv, the proportional relation is maintained. Equation (12) is derived.
  • Sx and Sy are functions of (Xv / Fv), (Yv / Fv), ⁇ yaw , and ⁇ pitch , respectively.
  • Cx and Cy are functions of (Xv / Fv), (Yv / Fv), ⁇ yaw , and ⁇ pitch , respectively. .
  • Expression (23) is an expression obtained by Taylor expansion of the function Sx (Xv / Fv, Yv / Fv, ⁇ yaw , ⁇ pitch ) around Yv 0 for the variable Yv. Further, Yv 2 in formula (23) is a suitable value within the open interval (Yv 0, Yv 1).
  • the function shown in Expression (24) is an (n ⁇ 1) th order polynomial approximation function obtained by polynomial expansion of the first expression shown in Expression (21) around Yv 0 .
  • the value of ⁇ which is a fixed value, is determined in a range of ⁇ 89.9 ⁇ ⁇ ⁇ 89.9, that is, changes in increments of 0.1 from ⁇ 89.9 to 89.9.
  • the fixed value x is in the range of ⁇ 10 ⁇ (Wv / 2) + 0.1 ⁇ x ⁇ 10 ⁇ (Wv / 2) ⁇ 0.1, that is, ⁇ 10 ⁇ (Wv / 2) +0.1 to 10 ⁇ (Wv / 2) -0.1.
  • the value of the variable y is in the range of ⁇ 10 ⁇ (Hv / 2) + 0.1 ⁇ y ⁇ 10 ⁇ (Hv / 2) ⁇ 0.1, that is, ⁇ 10 ⁇ (Hv / 2) +0.1 to 10 ⁇ . It is determined to change with a step size of 0.1 until (Hv / 2) -0.1.
  • Wv for determining the value of x and Hv for determining the value of y are the horizontal width (width in the Xv-axis direction) and the vertical width (high in the Yv-axis direction) of the screen SC11 on which a partial area of the panoramic image is projected. That is).
  • the value i in the value yus (x, ⁇ ) (i) where the n-th order differential function of the function Us (x, y, ⁇ ) is an extrema is the highest extremum from the smaller y value. It is shown whether or not y. That is, for a function obtained by partial differentiation of the function Us (x, y, ⁇ ) n times with respect to a predetermined fixed value x, ⁇ , the value of y that becomes an extreme value when y is regarded as a variable Is not necessarily one, the number of extreme values is expressed using the subscript “i”.
  • the value of y at which the n-th order differential function takes an extreme value is yus (x, ⁇ ) ( 1), yus (x, ⁇ ) (2), yus (x, ⁇ ) (3), and so on.
  • the step size of each value of x, y, and ⁇ is 0.1, but the step size of these values is not limited to 0.1 and may be any value. However, the finer the step size of these values, the better the calculation accuracy of the value yus (x, ⁇ ) (i), but the data of the value yus (x, ⁇ ) (i) listed is huge Since it is a quantity, the step size of each value is preferably about 0.1.
  • the y value when the nth-order differential function of the function Vs (x, y, ⁇ ) satisfies the following expression (34) or expression (35) is the extreme value y Value yvs (x, ⁇ ) (i). More specifically, the value yvs (x, ⁇ ) (i) and the extreme value at that time are registered.
  • the value of ⁇ which is a fixed value, is determined so as to change with a step size of 0.1 from -89.9 to 89.9.
  • the fixed value x is determined to change from -10 ⁇ (Wv / 2) +0.1 to 10 ⁇ (Wv / 2) -0.1 with a step size of 0.1
  • the variable y is -10 ⁇ (Hv / 2) +0.1 to 10 ⁇ (Hv / 2) ⁇ 0.1, with a step size of 0.1.
  • the y value when the nth-order differential function of the function Uc (x, y, ⁇ ) satisfies the following expression (36) or expression (37) is the extreme value y Is registered as the value of yuc (x, ⁇ ) (i). More specifically, the value yuc (x, ⁇ ) (i) and the extreme value at that time are registered.
  • the value of ⁇ which is a fixed value, is determined so as to change with a step size of 0.1 from -89.9 to 89.9.
  • the fixed value x is determined to change from -10 ⁇ (Wv / 2) +0.1 to 10 ⁇ (Wv / 2) -0.1 with a step size of 0.1
  • the variable y is -10 ⁇ (Hv / 2) +0.1 to 10 ⁇ (Hv / 2) ⁇ 0.1, with a step size of 0.1.
  • the y value when the nth-order differential function of the function Vc (x, y, ⁇ ) satisfies the following equation (38) or equation (39) is the extreme value y Value yvc (x, ⁇ ) (i). More specifically, the value yvc (x, ⁇ ) (i) and the extreme value at that time are registered.
  • the value of ⁇ which is a fixed value, is determined so as to change with a step size of 0.1 from -89.9 to 89.9.
  • the fixed value x is determined to change from -10 ⁇ (Wv / 2) +0.1 to 10 ⁇ (Wv / 2) -0.1 with a step size of 0.1
  • the variable y is -10 ⁇ (Hv / 2) +0.1 to 10 ⁇ (Hv / 2) ⁇ 0.1.
  • the value of the approximation error of Sx shown in the above equation (25) is the maximum of the three values obtained by the following equations (40) to (42). Equals the value.
  • Xa is a predetermined x value of 0.1 unit, and is a value as close as possible to Xv / Fv (the closest value).
  • ⁇ a is a predetermined value of ⁇ in 0.1 unit, and is a value as close as possible to the ⁇ pitch (closest value).
  • the calculation for obtaining the maximum value of the absolute value of the nth order differential function is Yv 0 / Fv ⁇ yus (xa, ⁇ a) (i) ⁇ of the listed values yus (x, ⁇ ) (i). for those satisfying yv 1 / Fv, the absolute value of the n-th order differential function of the value yus (xa, ⁇ a) (i ) determined, a further calculation for obtaining the maximum value of those absolute values.
  • the absolute value of the nth-order differential function in the value yus (xa, ⁇ a) (i) is the absolute value of the extreme value associated with the value yus (xa, ⁇ a) (i).
  • the maximum value among the values obtained by the calculation of the above equations (40) to (42) is the value of the approximation error of Sx in the closed interval [Yv 0 , Yv 1 ].
  • the calculation of the expression (40) should be calculated with the extreme value when the value of x is Xv / Fv and the value of ⁇ is ⁇ pitch , but yus (x, ⁇ ) (i) x and ⁇ are listed only in units of 0.1, so the extreme value is approximated by the closest yus (x, ⁇ ) (i).
  • Xa is a predetermined x value of 0.1 unit, and is a value as close as possible to Xv / Fv (the closest value).
  • ⁇ a is a predetermined value of ⁇ in 0.1 unit, and is a value as close as possible to the ⁇ pitch (closest value).
  • the value of the approximation error of Cx shown in the above equation (29) is the maximum of the three values obtained by the following equations (46) to (48), respectively. Equals the value.
  • Xa is a predetermined x value of 0.1 unit, and is a value as close as possible to Xv / Fv (the closest value).
  • ⁇ a is a predetermined value of ⁇ in 0.1 unit, and is a value as close as possible to the ⁇ pitch (closest value).
  • the value of the approximation error of Cy shown in the above equation (31) is the maximum of the three values obtained by the following equations (49) to (51), respectively. Equals the value.
  • Xa is a predetermined value of x in 0.1 units, and is as close as possible to Xv / Fv (the closest value).
  • ⁇ a is a predetermined value of ⁇ in 0.1 unit, and is a value as close as possible to the ⁇ pitch (closest value).
  • each of ⁇ yaw , ⁇ pitch , Fv, and Xv is fixed to an arbitrary value, and the function Sx is approximated by Equation (24) in the range of the closed interval [Yv 0 , Yv 1 ] as Yv.
  • the function Sy is approximated by the equation (26).
  • the value yus (x, ⁇ ) (i) in equation (40) and the value yvs (x, ⁇ ) (i) in equation (43) execute the pseudo code shown in FIGS. 6 and 7, respectively. It is data generated by doing.
  • Xa is a value of 0.1 unit and is as close as possible to Xv / Fv.
  • ⁇ a is a value of 0.1 unit and is as close as possible to ⁇ pitch .
  • the pixels of the panoramic image may be written as follows.
  • the position (Xv, Yv 1 ) is not the end of the screen SC11 on the Yv axis direction side, after the pixel is written from the position (Xv, Yv 0 ) to the position (Xv, Yv 1 ), the position (Xv , Yv 1 +1) is set as a new position (Xv, Yv 0 ), and pixel writing is repeated.
  • the maximum Yv coordinate may be used.
  • the maximum Yv coordinate approximation error is within the allowable range may be set to Yv 1. If it does so, the quality degradation by the approximation error of the image projected on screen SC11 can be prevented, and a high quality image can be obtained.
  • each of ⁇ yaw , ⁇ pitch , Fv, and Xv is fixed to an arbitrary value, and the function Cx is approximated by Equation (28) in the range of the closed interval [Yv 0 , Yv 1 ] as Yv.
  • the function Cy is approximated by the equation (30).
  • the value yuc (x, ⁇ ) (i) in equation (46) and the value yvc (x, ⁇ ) (i) in equation (49) execute the pseudo code shown in FIGS. 8 and 9, respectively. It is data generated by doing.
  • Xa is a value of 0.1 unit and is as close as possible to Xv / Fv.
  • ⁇ a is a value of 0.1 unit and is as close as possible to ⁇ pitch .
  • the pixels of the panoramic image may be written as follows.
  • the position (Xv, Yv 1 ) is not the end of the screen SC11 on the Yv axis direction side, after the pixel is written from the position (Xv, Yv 0 ) to the position (Xv, Yv 1 ), the position (Xv , Yv 1 +1) is set as a new position (Xv, Yv 0 ), and pixel writing is repeated.
  • the maximum Yv coordinate may be used.
  • the image processing apparatus is configured as shown in FIG. 10, for example.
  • 10 includes an acquisition unit 41, an input unit 42, a determination unit 43, a writing unit 44, and a display unit 45.
  • the acquisition unit 41 acquires a panoramic image and supplies it to the writing unit 44.
  • the panoramic image acquired by the acquisition unit 41 is an image projected on a spherical surface.
  • the input unit 42 supplies a signal corresponding to a user operation to the determination unit 43.
  • the determination unit 43 When the determination unit 43 cuts out a partial area of the panoramic image and displays it on the display unit 45, the panoramic image is written using one approximate function on the canvas area secured in the writing unit 44. Determine the area.
  • the determination unit 43 includes an extreme value data generation unit 61 and an error calculation unit 62.
  • the extreme value data generation unit 61 calculates the y value when the n-th order differential function required for evaluating the approximation error in calculating the position (Sx, Sy) on the panoramic image takes an extreme value, and the extreme value at that time. Is generated as extreme value data. That is, as extreme value data, the y value yus (x, ⁇ ) (i) when the nth order differential function takes an extreme value, the extreme value at that time, and the value yvs (x, ⁇ ) (i) and the value The extreme value is calculated.
  • the error calculation unit 62 calculates an approximate error in calculating the position (Sx, Sy) on the panoramic image based on the extreme value data.
  • the writing unit 44 exchanges information with the determining unit 43 as necessary, and writes a part of the panoramic image from the acquiring unit 41 to the secured canvas area, thereby specifying the panoramic image by the user. An image of the region of the line-of-sight direction and the focal length is generated.
  • the writing unit 44 includes a corresponding position calculating unit 71, and the corresponding position calculating unit 71 calculates the position of the pixel on the panoramic image to be written at each position of the canvas area.
  • the writing unit 44 supplies an image written in the canvas area (hereinafter referred to as an output image) to the display unit 45.
  • the display unit 45 includes a liquid crystal display, for example, and displays an output image supplied from the writing unit 44.
  • the display unit 45 corresponds to the display device described above. In the following, it is assumed that the size of the display screen of the display unit 45 is Wv pixels in the horizontal direction and Hv pixels in the vertical direction.
  • step S11 the acquisition unit 41 acquires a panoramic image and supplies it to the writing unit 44.
  • step S12 the extreme value data generation unit 61 determines the value yus (x, y, x) when the nth-order differential function obtained by partial differentiation of the function Us (x, y, ⁇ ) by n times takes y. ⁇ ) (i) is calculated, and the obtained values yus (x, ⁇ ) (i) and the extreme values at the values yus (x, ⁇ ) (i) are stored as extreme value data.
  • the extreme value data generation unit 61 executes the pseudo code shown in FIG. 6, and sets the y value when the expression (32) or the expression (33) is satisfied to the y value yus ( x, ⁇ ) (i).
  • step S13 the extreme value data generation unit 61 sets the y value yvs (x, y, when the nth-order differential function obtained by partial differentiation of the function Vs (x, y, ⁇ ) n times by y takes the extreme value.
  • ⁇ ) (i) is calculated, and the obtained values yvs (x, ⁇ ) (i) and the extreme values at the values yvs (x, ⁇ ) (i) are held as extreme value data.
  • the extreme value data generation unit 61 executes the pseudo code shown in FIG. 7, and sets the y value when the expression (34) or the expression (35) is satisfied to the y value yvs ( x, ⁇ ) (i).
  • the y value yus (x, ⁇ ) (i) and the value yvs (x, ⁇ ) (i) as the extreme value data thus obtained and the extreme value in those y values are the canvas area. This is used to calculate an approximation error when the position (Sx, Sy) on the panoramic image written at the position (Xv, Yv) on the (screen) is obtained by approximation.
  • the extreme value data may be held in a format such as a lookup table.
  • step S14 the writing unit 44 secures a canvas area for generating an output image on a memory (not shown).
  • This canvas area corresponds to the virtual screen SC11 shown in FIG.
  • the XvYv coordinate system is determined with the center of the canvas area as the origin O ', the width of the canvas area in the Xv direction (horizontal direction) is Wv, and the height in the Yv direction (vertical direction) is Hv. Accordingly, the range of the canvas area in the XvYv coordinate system is ⁇ Wv / 2 ⁇ Xv ⁇ Wv / 2, ⁇ Hv / 2 ⁇ Yv ⁇ Hv / 2.
  • step S15 the input unit 42 receives input of the angle ⁇ yaw , the angle ⁇ pitch , and the focal length Fv.
  • the user operates the input unit 42 to input the line-of-sight direction determined from the angle ⁇ yaw and the angle ⁇ pitch and the focal length Fv.
  • the input unit 42 supplies the angle ⁇ yaw , the angle ⁇ pitch , and the focal length Fv input by the user to the determination unit 43.
  • step S16 the writing unit 44 sets the Xv coordinate of the start position of the area where the panoramic image is written on the canvas area to ⁇ Wv / 2.
  • the panorama image is written in the canvas area in order from the end on the ⁇ Yv direction side to the + Yv direction side for each area composed of pixels having the same Xv coordinate.
  • an area composed of several pixels arranged in the Yv direction in the canvas area is a writing area, and a calculation using one approximation function is performed on the panoramic image corresponding to each position (Xv, Yv) in the writing area. A position is required.
  • the end of the writing area on the ⁇ Yv direction side that is, the position of the pixel with the smallest Yv coordinate is also referred to as the starting position of the writing area
  • the end of the writing area on the + Yv direction side that is, the pixel with the largest Yv coordinate.
  • the position is also referred to as the end position of the writing area.
  • the Yv coordinate of the start position of the write area is Yv 0
  • the Yv coordinate of the end position of the write area is Yv 1 .
  • the start position of the writing area on the canvas area is the position ( ⁇ Wv / 2, ⁇ Hv / 2). That is, the position of the upper left end (vertex) in the screen SC11 in FIG. 5 is the start position of the writing area.
  • step S ⁇ b> 18 the image processing apparatus 31 performs an end position calculation process to calculate a value of Yv 1 that is the Yv coordinate of the end position of the writing area.
  • the end position of the writing area is determined using the extreme value data obtained in the processes of steps S12 and S13.
  • step S19 the image processing apparatus 31 performs a writing process, and writes the pixel value of the pixel of the panoramic image in the writing area on the canvas area.
  • the approximation functions of the above-described equations (24) and (26) are used, and on the panoramic image corresponding to each position (Xv, Yv) of the writing region.
  • the position (Sx, Sy) of is calculated.
  • step S21 the writing unit 44 sets Yv 0 , which is the Yv coordinate of the start position of the writing area, to Yv 1 +1.
  • the writing unit 44 sets a position adjacent to the end position of the writing area at the current time in the + Yv direction side as a starting position of the next new writing area. For example, when the coordinates of the end position of the writing area at the present time are (Xv, Yv), the position where the coordinates are (Xv, Yv + 1) is set as the start position of the new writing area.
  • step S18 When the start position of the new writing area is determined, the process returns to step S18 and the above-described process is repeated. That is, the end position of the new writing area is determined, and the panorama image is written to the writing area.
  • the Xv coordinate of the writing area at the present time is the Xv coordinate of the end of the canvas area on the + Xv direction side.
  • the fact that the current position of the writing area is the position of the canvas area on the + Xv direction side means that the panoramic image has been written to the entire canvas area.
  • step S17 When the Xv coordinate of the new writing area is determined, the process returns to step S17 and the above-described process is repeated. That is, the start position and end position of the new writing area are determined, and the panorama image is written to the writing area.
  • step S24 the writing unit 44 reads the image of the canvas area. Output as output image.
  • the image output from the writing unit 44 is supplied to the display unit 45 as an output image and displayed. Thereby, the image (output image) of the region of the line-of-sight direction and the focal length designated by the user in the panoramic image is displayed on the display unit 45, so that the user can appreciate the displayed output image.
  • step S15 When the output image is output, the process returns to step S15 and the above-described process is repeated. That is, when the user wants to view another area in the panoramic image, when the user inputs the line-of-sight direction and the focal length again, a new output image is generated and displayed by the processing in steps S15 to S24. When the user gives an instruction to end display of the output image, the image output process ends.
  • the image processing apparatus 31 when the line-of-sight direction and the focal length are designated by the user, the image processing apparatus 31 writes each pixel of the panoramic image specified by the line-of-sight direction and the focal length in the canvas area and outputs the output image. Generate. At this time, the image processing device 31 determines the end position of the writing area based on the evaluation result of the approximate error so that the quality does not deteriorate, and writes the pixels of the panoramic image to the writing area.
  • the threshold value th indicates an allowable amount of approximation error for the calculation of the position (Sx, Sy) on the panoramic image using the approximation function. Note that the value of the threshold th is not limited to 0.5 and may be any value.
  • step S52 the determination unit 43 sets the values of Xa and ⁇ a. Specifically, the determination unit 43 sets a value closest to Xv / Fv in 0.1 units as Xa, and sets a value closest to the angle ⁇ pitch in 0.1 units as ⁇ a.
  • Xv is the value of the Xv coordinate of the writing area determined in the process of step S16 or step S23 of FIG. 11, and Fv and ⁇ pitch are the angles ⁇ pitch input in the process of step S15 of FIG. And the focal length Fv.
  • the Yv coordinate of the end position determined here is a temporary value temporarily determined.
  • (int) (A) is a function that truncates the decimal part of A and outputs the integer part.
  • step S54 the error calculation unit 62 calculates the above-described equations (40) to (45), obtains the maximum value of the approximation error when calculating Sx and Sy by the approximation function, and calculates the obtained value. Let tmp.
  • the error calculation unit 62 calculates the approximate error when Sx is calculated by the approximate function of Expression (24) by calculating Expression (40) to Expression (42). At this time, the error calculation unit 62 calculates Equation (40) using the extreme value of the y value yus (xa, ⁇ a) (i) held as extreme value data.
  • the values set in step S52 are used as the values of Xa and ⁇ a in the y value yus (xa, ⁇ a) (i). If only y value yus (xa, ⁇ a) (i) is held as extreme value data, the value of the nth derivative function is based on the value yus (xa, ⁇ a) (i). (Extreme value) is calculated.
  • the error calculation unit 62 calculates the approximation error when calculating Sy by the approximation function of the equation (26) by calculating the equations (43) to (45). At this time, the error calculation unit 62 calculates Equation (43) using the extreme value of the y value yvs (xa, ⁇ a) (i) held as the extreme value data. Note that the values set in step S52 are used as the values of Xa and ⁇ a in the y value yvs (xa, ⁇ a) (i).
  • the error calculation unit 62 determines the approximate error of Sx and the approximate error of Sy in this way, the larger of the approximate errors is set as the maximum error value tmp.
  • the maximum value tmp of the error is equal to or less than the threshold th that is an allowable amount of error, an approximation error is present with respect to the area from the start position of the write area to the end position of the write area that is temporarily determined at this time. It will be within the allowable range. That is, even if the position of the panoramic image corresponding to each position of the writing area is obtained using the same approximate function, the quality degradation of the output image is not noticeable.
  • step S55 the determination unit 43 determines whether or not the maximum error value tmp is larger than the threshold value th.
  • (int) (A) is a function that truncates the decimal part of A and outputs the integer part.
  • Yv 0 is the Yv coordinate of the start position of the writing area at the current time
  • Yv 1 is the Yv coordinate of the tentatively determined end position of the writing area at the current time.
  • Yv intermediate position coordinates of the upper limit of the lower end position of the end position of the present time are tmpYv 1.
  • step S55 if it is determined in step S55 that the maximum value tmp is not greater than the threshold th, that is, if the approximation error is less than or equal to the allowable amount, in step S57, the determination unit 43 sets the lower limit of the end position.
  • (int) (A) is a function that outputs the integer part of A.
  • Yv 1 is the Yv coordinate of the end position tentatively defined for the writing area at the present time. Therefore, Yv intermediate position coordinates of the upper limit of the lower end position of the end position of the present time are tmpYv 1.
  • tmpYv 1 is obtained, the process thereafter proceeds to step S58.
  • the determination unit 43 supplies information indicating the start position and end position of the writing area to the writing unit 44, and the end position calculation process ends.
  • the process proceeds to step S19 in FIG.
  • the angle ⁇ yaw , the angle ⁇ pitch , and the focal length Fv input by the user are also supplied from the determination unit 43 to the writing unit 44 as necessary.
  • the image processing apparatus 31 obtains an error in calculating the position (Sx, Sy) by the approximation function using the extreme value data, and determines the end position of the writing area based on the error.
  • the approximation error can be reduced by a simple calculation in which the above-described equations (40) to (45) are calculated using the extreme value data.
  • the writing area within the allowable range can be quickly determined.
  • step S81 the writing unit 44, based on the information indicating the start position and end position of the writing area supplied from the determining unit 43, among the writing areas on the canvas area, Yv of the writing target position to be written from now on.
  • the coordinate is Yv 0 .
  • the Yv coordinate of the position (Xv, Yv) to be written on the canvas area is set to Yv 0 which is the Yv coordinate of the start position of the writing area.
  • the Xv coordinate of the position (Xv, Yv) to be written is the Xv coordinate determined in the process of step S16 or step S23 of FIG. Therefore, in this case, the start position of the write area is the write target position (Xv, Yv).
  • step S82 the corresponding position calculation unit 71 calculates the position (Sx, Sy) on the panorama image corresponding to the position (Xv, Yv) to be written by calculating the above-described equations (24) and (26). ) Is calculated.
  • the corresponding position calculation unit 71 uses the information on the start position and the end position supplied from the determination unit 43, the angle ⁇ yaw , the angle ⁇ pitch , and the focal length Fv, and uses the equations (24) and (26). ).
  • step S83 the writing unit 44 sets the pixel value of the pixel of the panoramic image at the position (Sx, Sy) calculated in the process of step S82 as the pixel value of the pixel of the writing target position (Xv, Yv). Write to the target position on the canvas area.
  • step S84 the writing unit 44 determines whether or not the Yv coordinate of the write target position (Xv, Yv) is less than Yv 1 that is the Yv coordinate of the end position of the write area. That is, it is determined whether or not the panorama image pixel has been written to each pixel in the writing area.
  • the writing unit 44 sets a position adjacent to the + Yv direction on the canvas area as a new writing target position when viewed from the current writing target position. Therefore, when the current position to be written is (Xv, Yv), the new position to be written is (Xv, Yv + 1).
  • step S84 if it is determined in step S84 that the Yv coordinate of the position to be written is equal to or greater than Yv 1 that is the Yv coordinate of the end position, the pixels of the panoramic image are written at all positions in the writing area. As a result, the writing process ends. When the writing process ends, the process proceeds to step S20 in FIG.
  • the image processing device 31 calculates the position on the panoramic image where there is a pixel to be written at the position to be written using the approximation function, and writes it in the writing area. As described above, by using the approximate function to obtain the position on the panoramic image corresponding to the position to be written, writing can be performed quickly by simple calculation.
  • the position on the panoramic image corresponding to the position to be written can be obtained by the n-th order polynomial in the equations (24) and (26), so that the processing speed can be improved. Can be planned.
  • the image processing apparatus 101 in FIG. 14 includes an acquisition unit 111, an input unit 42, a determination unit 112, a writing unit 113, and a display unit 45.
  • portions corresponding to those in FIG. 10 are denoted by the same reference numerals, and description thereof is omitted.
  • the acquisition unit 111 acquires a panoramic image and supplies it to the writing unit 113.
  • the panoramic image acquired by the acquisition unit 111 is an image projected on a cylindrical surface.
  • the determination unit 112 When the determination unit 112 cuts out a partial area of the panoramic image and displays it on the display unit 45, the panorama image is written using one approximation function on the canvas area secured in the writing unit 113. Determine the area.
  • the determination unit 112 includes an extreme value data generation unit 131 and an error calculation unit 132.
  • the extreme value data generation unit 131 calculates the y value when the nth-order differential function required for evaluating the approximation error in calculating the position (Cx, Cy) on the panoramic image takes an extreme value, and the extreme value at that time. Is generated as extreme value data. That is, the value yuc (x, ⁇ ) (i) and the value yvc (x, ⁇ ) (i) of y when the nth-order differential function takes the extreme value are calculated as the extreme value data.
  • the error calculation unit 132 calculates an approximate error in calculating the position (Cx, Cy) on the panoramic image based on the extreme value data.
  • the writing unit 113 exchanges information with the determining unit 112 as necessary, and writes the panoramic image from the acquiring unit 111 into the secured canvas area, thereby allowing the line-of-sight direction and focus designated by the user in the panoramic image. Generate an image of the distance region.
  • the writing unit 113 includes a corresponding position calculation unit 141, and the corresponding position calculation unit 141 calculates the position of the pixel on the panoramic image to be written at each position in the canvas area.
  • step S131 the acquisition unit 111 acquires a panoramic image and supplies it to the writing unit 113.
  • step S132 the extreme value data generation unit 131 determines the value yuc (x, y, x) when the nth-order differential function obtained by partial differentiation of the function Uc (x, y, ⁇ ) n times by y takes the extreme value.
  • ⁇ ) (i) is calculated, and the obtained values yuc (x, ⁇ ) (i) and the extreme values in the values yuc (x, ⁇ ) (i) are stored as extreme value data.
  • the extreme value data generation unit 131 executes the pseudo code shown in FIG. 8, and sets the y value when the expression (36) or the expression (37) is satisfied to the y value yuc ( x, ⁇ ) (i).
  • step S133 the extreme value data generation unit 131 determines the value yvc (x, y, y) when the nth-order differential function obtained by partial differentiation of the function Vc (x, y, ⁇ ) n times with respect to y takes the extreme value.
  • ⁇ ) (i) is calculated, and the obtained values yvc (x, ⁇ ) (i) and the extreme values of the values yvc (x, ⁇ ) (i) are held as extreme value data.
  • the extreme value data generation unit 131 executes the pseudo code shown in FIG. 9, and sets the y value when the equation (38) or the equation (39) is satisfied to the y value yvc ( x, ⁇ ) (i).
  • the y value yuc (x, ⁇ ) (i) and yvc (x, ⁇ ) (i) as the extreme value data thus obtained and the extreme values in those y values are the canvas area. This is used to calculate an approximation error when the position (Cx, Cy) on the panoramic image written at the position (Xv, Yv) on the (screen) is obtained by approximation.
  • the extreme value data may be held in a format such as a lookup table.
  • step S134 to step S137 is performed thereafter. Since these processing are the same as the processing from step S14 to step S17 in FIG. 11, the description thereof is omitted.
  • step S138 the image processing apparatus 101 performs an end position calculation process, and calculates a value of Yv 1 that is the Yv coordinate of the end position of the writing area.
  • the end position of the writing area is determined using the extreme value data obtained in the processes of step S132 and step S133.
  • step S139 the image processing apparatus 101 performs a writing process, and writes the pixel value of the pixel of the panoramic image in the writing area on the canvas area.
  • the approximation functions of the above-described equations (28) and (30) are used, and on the panoramic image corresponding to each position (Xv, Yv) of the writing region.
  • the position (Cx, Cy) of is calculated.
  • step S140 to step S144 is performed thereafter. Since these processes are the same as the process from step S20 to step S24 in FIG. 11, the description thereof is omitted. Further, when the user instructs to end the display of the output image, the image output process ends.
  • the image processing apparatus 101 generates and outputs an output image when the line-of-sight direction and the focal length are designated by the user. At this time, the image processing apparatus 101 determines the end position of the writing area based on the evaluation result of the approximate error so that the quality does not deteriorate, and writes the pixels of the panoramic image to the writing area.
  • or step S73 is the same as the process of step S51 thru
  • step S74 the error calculation unit 132 calculates the above-described equations (46) to (51), obtains the maximum value of the approximation error when Cx and Cy are calculated by the approximation function, and calculates the obtained value. Let tmp.
  • the error calculation unit 132 calculates the approximation error when Cx is calculated by the approximation function of the equation (28) by calculating the equations (46) to (48). At this time, the error calculation unit 132 calculates Equation (46) using the extreme value of y value yuc (xa, ⁇ a) (i) held as extreme value data.
  • the values set in step S72 are used as the values of Xa and ⁇ a in the y value yuc (xa, ⁇ a) (i).
  • the error calculation unit 132 calculates the approximation error when Cy is calculated by the approximation function of the equation (30) by calculating the equations (49) to (51). At this time, the error calculation unit 132 calculates Equation (49) using the extreme value of the y value yvc (xa, ⁇ a) (i) held as extreme value data.
  • the values set in step S72 are used as the values of Xa and ⁇ a in the y value yvc (xa, ⁇ a) (i).
  • the error calculation unit 132 obtains the approximate error of Cx and the approximate error of Cy in this manner, the larger of the approximate errors is set as the maximum value tmp of the error.
  • step S75 to step S79 is performed thereafter, and the end position calculation processing ends.
  • These processing is the same as the processing from step S55 to step S59 in FIG. Therefore, the description is omitted.
  • the determination unit 112 also supplies the writing unit 113 with the angle ⁇ yaw , the angle ⁇ pitch , and the focal length Fv input by the user as necessary, along with information on the start position and end position of the writing area. Is done.
  • the image processing apparatus 101 obtains an error in calculating the position (Cx, Cy) by the approximation function using the extreme value data, and determines the end position of the writing area based on the error.
  • an approximation error can be obtained by a simple calculation in which the above-described equations (46) to (51) are calculated using the extreme value data.
  • the writing area within the allowable range can be quickly determined.
  • step S101 is the same as the process of step S81 of FIG. 13, its description is omitted.
  • step S102 the corresponding position calculation unit 141 calculates the position (Cx, Cy) on the panorama image corresponding to the position (Xv, Yv) to be written by performing the calculation of the above formulas (28) and (30). ) Is calculated.
  • the corresponding position calculation unit 141 uses the information on the start position and the end position supplied from the determination unit 112, the angle ⁇ yaw , the angle ⁇ pitch , and the focal length Fv, and uses the equations (28) and (30). ).
  • step S103 the writing unit 113 sets the pixel value of the pixel of the panoramic image at the position (Cx, Cy) calculated in the process of step S102 as the pixel value of the pixel at the writing target position (Xv, Yv). Write to the target position on the canvas area.
  • step S104 and step S105 are performed thereafter, and the writing processing is terminated.
  • steps S104 and step S105 are the same as the processing of step S84 and step S85 of FIG. The description is omitted.
  • the image processing apparatus 101 calculates the position on the panoramic image where there is a pixel to be written at the position to be written using the approximation function, and writes it in the writing area. As described above, by using the approximate function to obtain the position on the panoramic image corresponding to the position to be written, writing can be performed quickly by simple calculation.
  • the series of processes described above can be executed by hardware or can be executed by software.
  • a program constituting the software is installed in the computer.
  • the computer includes, for example, a general-purpose personal computer capable of executing various functions by installing a computer incorporated in dedicated hardware and various programs.
  • FIG. 18 is a block diagram illustrating a configuration example of hardware of a computer that executes the above-described series of processes by a program.
  • a CPU Central Processing Unit
  • ROM Read Only Memory
  • RAM Random Access Memory
  • An input / output interface 205 is further connected to the bus 204.
  • An input unit 206, an output unit 207, a recording unit 208, a communication unit 209, and a drive 210 are connected to the input / output interface 205.
  • the input unit 206 includes a keyboard, a mouse, a microphone, and the like.
  • the output unit 207 includes a display, a speaker, and the like.
  • the recording unit 208 includes a hard disk, a nonvolatile memory, and the like.
  • the communication unit 209 includes a network interface and the like.
  • the drive 210 drives a removable medium 211 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory.
  • the CPU 201 loads, for example, the program recorded in the recording unit 208 to the RAM 203 via the input / output interface 205 and the bus 204, and executes the program. Is performed.
  • the program executed by the computer (CPU 201) can be provided by being recorded in the removable medium 211 as a package medium or the like, for example.
  • the program can be provided via a wired or wireless transmission medium such as a local area network, the Internet, or digital satellite broadcasting.
  • the program can be installed in the recording unit 208 via the input / output interface 205 by attaching the removable medium 211 to the drive 210.
  • the program can be received by the communication unit 209 via a wired or wireless transmission medium and installed in the recording unit 208.
  • the program can be installed in the ROM 202 or the recording unit 208 in advance.
  • the program executed by the computer may be a program that is processed in time series in the order described in this specification, or in parallel or at a necessary timing such as when a call is made. It may be a program for processing.
  • the present technology can take a cloud computing configuration in which one function is shared by a plurality of devices via a network and is jointly processed.
  • each step described in the above flowchart can be executed by one device or can be shared by a plurality of devices.
  • the plurality of processes included in the one step can be executed by being shared by a plurality of apparatuses in addition to being executed by one apparatus.
  • the present technology can be configured as follows.
  • An image processing apparatus that generates an output image having a predetermined positional relationship with an input image, A function necessary for calculating an error when the position on the input image corresponding to the position on the output image is obtained by an approximation function, the variable defining the positional relationship and the position on the output image
  • An extreme value data generation unit that generates data related to the extreme value of the function based on the function
  • the target area from the first position to the second position on the output image, based on the data, the position of the input image corresponding to the position in the target area is obtained by the approximation function
  • An error calculation unit for calculating an error;
  • a determination unit that determines the target region in which the error is equal to or less than a predetermined threshold; For each determined position in the target area, the corresponding position of the input image is obtained using the approximation function, and the pixel value of the pixel at the corresponding position is set as the pixel value of the pixel at the position of the target area.
  • An image processing apparatus comprising: an image generation unit configured to generate the output image.
  • the approximate function is a polynomial approximate function obtained by performing a polynomial expansion on the function indicating the positional relationship around the first position.
  • the approximate function is an (n ⁇ 1) -order polynomial approximate function, and the function necessary for calculating the error is a function obtained by performing n-order differentiation on a function indicating the positional relationship.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Studio Devices (AREA)
  • Stereoscopic And Panoramic Photography (AREA)

Abstract

本技術は、より簡単かつ迅速にパノラマ画像の所望の方向の領域を切り出すことができるようにする画像処理装置および方法、並びにプログラムに関する。 画像処理装置は、球面に投影されたパノラマ画像の所定の視線方向の領域を切り出して表示させる場合、指定された視線方向により定まる仮想的なスクリーンに投影されるパノラマ画像の領域を出力画像として表示させる。すなわち、画像処理装置は、スクリーン上の位置に投影されるパノラマ画像の画素位置を近似関数により算出し、出力画像を生成する。このとき、画像処理装置は、近似関数による近似誤差の評価を行なう。具体的には画像処理装置は、スクリーン上の書き込み領域内の各位置に対応するパノラマ画像の画素位置を1つの近似関数を用いて求めるときに、近似誤差が許容量以下となるように書き込み領域の範囲を定める。本技術は、画像処理装置に適用することができる。

Description

画像処理装置および方法、並びにプログラム
 本技術は画像処理装置および方法、並びにプログラムに関し、特に、パノラマ画像の特定方向の領域を切り出して表示させる場合に、より簡単かつ迅速に所望の方向の領域を切り出すことができるようにした画像処理装置および方法、並びにプログラムに関する。
 例えば、カメラを回転させながら連続して撮影した複数の画像を用いて、ワイドなパノラマ画像を生成する技術が知られている(例えば、特許文献1参照)。このようなパノラマ画像は、複数撮影された画像の一部が切り出されて合成されることで生成される。
特許第4293053号公報
 しかしながら、上述した技術では、パノラマ画像の一部を切り出して表示させることはできるが、ユーザの視線方向として所望の方向が指定された場合に、パノラマ画像における指定された方向の領域を切り出して表示させることはできなかった。
 本技術は、このような状況に鑑みてなされたものであり、パノラマ画像における所望の方向の領域を簡単かつ迅速に切り出すことができるようにするものである。
 本技術の一側面の画像処理装置は、入力画像と所定の位置関係を有する出力画像を生成する画像処理装置であって、前記出力画像上の位置に対応する前記入力画像上の位置を近似関数により求めたときの誤差の算出に必要な関数であって、前記位置関係を規定する変数および前記出力画像上の位置を変数として有する関数に基づいて、前記関数の極値に関するデータを生成する極値データ生成部と、前記出力画像上の第1の位置から第2の位置までの対象領域について、前記データに基づいて、前記対象領域内の位置に対応する前記入力画像の位置を前記近似関数により求めたときの前記誤差を算出する誤差算出部と、前記誤差が所定の閾値以下となる前記対象領域を決定する決定部と、決定された前記対象領域内の各位置について、前記近似関数を用いて前記入力画像の対応する位置を求め、前記対応する位置の画素の画素値を前記対象領域の位置の画素の画素値とすることで、前記出力画像を生成する画像生成部とを備える。
 前記近似関数を、前記位置関係を示す関数を前記第1の位置の周りで多項式展開した多項式近似関数とすることができる。
 前記近似関数を、(n-1)次多項式近似関数とし、前記誤差の算出に必要な前記関数を、前記位置関係を示す関数をn次微分することで得られる関数とすることができる。
 前記位置関係を規定する変数を、所定の基準位置からみた前記出力画像の方向、および前記基準位置から前記出力画像までの距離とすることができる。
 前記出力画像上の所定の位置に対応する前記入力画像上の位置を、前記所定の位置および前記基準位置を通る直線と、前記入力画像との交点の位置とすることができる。
 前記入力画像を、球面に投影された画像、または円筒面に投影された画像とすることができる。
 本技術の一側面の画像処理方法またはプログラムは、入力画像と所定の位置関係を有する出力画像を生成する画像処理方法またはプログラムであって、前記出力画像上の位置に対応する前記入力画像上の位置を近似関数により求めたときの誤差の算出に必要な関数であって、前記位置関係を規定する変数および前記出力画像上の位置を変数として有する関数に基づいて、前記関数の極値に関するデータを生成し、前記出力画像上の第1の位置から第2の位置までの対象領域について、前記データに基づいて、前記対象領域内の位置に対応する前記入力画像の位置を前記近似関数により求めたときの前記誤差を算出し、前記誤差が所定の閾値以下となる前記対象領域を決定し、決定された前記対象領域内の各位置について、前記近似関数を用いて前記入力画像の対応する位置を求め、前記対応する位置の画素の画素値を前記対象領域の位置の画素の画素値とすることで、前記出力画像を生成するステップを含む。
 本技術の一側面においては、入力画像と所定の位置関係を有する出力画像を生成する場合に、前記出力画像上の位置に対応する前記入力画像上の位置を近似関数により求めたときの誤差の算出に必要な関数であって、前記位置関係を規定する変数および前記出力画像上の位置を変数として有する関数に基づいて、前記関数の極値に関するデータが生成され、前記出力画像上の第1の位置から第2の位置までの対象領域について、前記データに基づいて、前記対象領域内の位置に対応する前記入力画像の位置を前記近似関数により求めたときの前記誤差が算出され、前記誤差が所定の閾値以下となる前記対象領域が決定され、決定された前記対象領域内の各位置について、前記近似関数を用いて前記入力画像の対応する位置を求め、前記対応する位置の画素の画素値を前記対象領域の位置の画素の画素値とすることで、前記出力画像が生成される。
 本技術の一側面によれば、パノラマ画像における所望の方向の領域を簡単かつ迅速に切り出すことができる。
パノラマ画像が投影されている球面について説明する図である。 パノラマ画像が投影されている円筒面について説明する図である。 パノラマ画像の所望の領域を切り出すための擬似コードを示す図である。 パノラマ画像の所望の領域を切り出すための擬似コードを示す図である。 パノラマ画像の一部が投影されるスクリーンについて説明する図である。 n次微分関数が極値をとるときの値を求める擬似コードを示す図である。 n次微分関数が極値をとるときの値を求める擬似コードを示す図である。 n次微分関数が極値をとるときの値を求める擬似コードを示す図である。 n次微分関数が極値をとるときの値を求める擬似コードを示す図である。 画像処理装置の構成例を示す図である。 画像出力処理について説明するフローチャートである。 終了位置算出処理について説明するフローチャートである。 書き込み処理について説明するフローチャートである。 画像処理装置の構成例を示す図である。 画像出力処理について説明するフローチャートである。 終了位置算出処理について説明するフローチャートである。 書き込み処理について説明するフローチャートである。 コンピュータの構成例を示す図である。
 以下、図面を参照して、本技術を適用した実施の形態について説明する。
〈本技術の概要〉
[パノラマ画像について]
 まず、本技術の概要について説明する。
 一般的に、ワイドなパノラマ画像は、透視投影変換によって平面に射影した画像として生成されることは、あまり行なわれていない。そのような理由として、パノラマ画像の周辺部分が極端に歪んでしまうことと、180度を超えたワイドな画像は表現できないことがあげられる。そこで、通常は、パノラマ画像が球面に投影した画像、または円筒面に投影した画像として保存されることが多い。
 そこで、まず球面に投影したパノラマ画像と、円筒面に投影したパノラマ画像について説明する。
 パノラマ画像が球面に投影された画像である場合、パノラマ画像(2次元画像)の横幅は2πとされ、パノラマ画像の高さはπとされる。すなわち、2次元画像の座標系(以下、SxSy座標系と称する)上の任意の位置を(Sx,Sy)とした場合、パノラマ画像は、0≦Sx≦2π,-π/2≦Sy≦π/2の矩形領域の画像である。
 そして、この2次元画像の各位置(Sx,Sy)には、3次元のXwYwZw座標系(以下、ワールド座標系とも称する)における次式(1)に示す方向から原点に向かって飛来する光が投影されている。
Figure JPOXMLDOC01-appb-M000001
 なお、式(1)においてXw、Yw、およびZwは、それぞれワールド座標系におけるXw座標、Yw座標、およびZw座標を示している。
 すなわち、図1に示すようにワールド座標系の原点Oを中心とした半径1の球面SP11を正距円筒図法により展開した画像が、パノラマ画像(2次元画像)である。なお、図1において、図中、右斜め方向、下方向、および左斜め方向は、それぞれワールド座標系のXw軸、Yw軸、およびZw軸の方向を示している。
 図1の例では、Zw軸と球面SP11とが交わる位置が、SxSy座標系の原点となっている。したがって、球面SP11上の円弧AR11の長さがSxであり、円弧AR12の長さがSyである。また、ワールド座標系の原点Oを通る直線L11の方向が、式(1)により示される方向である。
 これに対して、パノラマ画像が円筒面に投影された画像である場合、パノラマ画像(2次元画像)の横幅は2πとされ、パノラマ画像の高さは任意の高さHとされる。すなわち、2次元画像の座標系(以下、CxCy座標系と称する)上の任意の位置を(Cx,Cy)とした場合、パノラマ画像は、0≦Cx≦2π,-H/2≦Cy≦H/2の矩形領域の画像である。
 そして、この2次元画像の各位置(Cx,Cy)には、3次元のXwYwZw座標系(ワールド座標系)における次式(2)に示す方向から原点に向かって飛来する光が投影されている。
Figure JPOXMLDOC01-appb-M000002
 なお、式(2)においてXw、Yw、およびZwは、それぞれワールド座標系におけるXw座標、Yw座標、およびZw座標を示している。
 すなわち、図2に示すようにワールド座標系のYw軸を中心とした半径1の円筒の側面である円筒面CL11を展開した画像が、パノラマ画像(2次元画像)である。なお、図2において、図中、右斜め方向、下方向、および左斜め方向は、それぞれワールド座標系のXw軸、Yw軸、およびZw軸の方向を示している。
 図2の例では、Zw軸と円筒面CL11とが交わる位置が、CxCy座標系の原点となっている。したがって、円筒面CL11上の円弧AR21の長さがCxであり、直線L21の長さがCyである。また、ワールド座標系の原点Oを通る直線L22の方向が、式(2)により示される方向である。
[パノラマ画像の切り出し表示について]
 ところで、このようなワイドなパノラマ画像から、その一部分を切り出して表示デバイスに表示させ、パノラマ画像を観賞したいという要望がある。
 いま、パノラマ画像から切り出された画像が表示される表示デバイスの表示画面の横方向(Sx方向またはCx方向に対応する方向)の画素数がWv画素であり、表示画面の縦方向(Sy方向またはCy方向に対応する方向)の画素数がHv画素であるとする。
 例えば、Wv=800,Hv=600であり、これらの画素数WvおよびHvは固定の値とされる。また、画素数WvおよびHvは偶数であるとする。
 ユーザは、表示デバイスにパノラマ画像の一部を表示させる場合、パノラマ画像のどの領域を表示させるかを指定する。具体的には、例えば2つの角度θyawおよびθpitchから定まるユーザの視線方向と、焦点距離Fvとがユーザにより指定される。
 このようにユーザの視線方向と焦点距離が指定されると、パノラマ画像における視線方向の領域が、焦点距離で定まるズーム倍率で表示されることになる。
 具体的には、ワイドなパノラマ画像が球面に投影された画像である場合には、図3に示す擬似コードが実行されて表示デバイスに画像が表示される。
 すなわち、横Wv,縦Hvの大きさのキャンバス領域がメモリ上に確保される。そして、キャンバス領域上のXvYv座標系の各位置(Xv,Yv)(但し、-Wv/2≦Xv≦Wv/2,-Hv/2≦Yv≦Hv/2)について、次式(3)を満たすパノラマ画像上の位置(Sx,Sy)が求められる。
Figure JPOXMLDOC01-appb-M000003
 XvYv座標系上の各位置(Xv,Yv)に対応するパノラマ画像上の位置(Sx,Sy)が求められると、位置(Sx,Sy)にあるパノラマ画像の画素の画素値が、キャンバス領域上の対応する位置(Xv,Yv)に書き込まれる。すなわち、パノラマ画像の位置(Sx,Sy)の画素の画素値が、キャンバス領域上の対応する位置(Xv,Yv)の画素の画素値とされる。
 このようにしてキャンバス領域上の各位置に画素値が書き込まれると、キャンバス領域の画像が、パノラマ画像上における、ユーザにより指定された視線方向および焦点距離の領域の画像として出力される。
 同様に、ワイドなパノラマ画像が円筒面に投影された画像である場合には、図4に示す擬似コードが実行されて表示デバイスに画像が表示される。
 すなわち、横Wv,縦Hvの大きさのキャンバス領域がメモリ上に確保される。そして、キャンバス領域上のXvYv座標系の各位置(Xv,Yv)(但し、-Wv/2≦Xv≦Wv/2,-Hv/2≦Yv≦Hv/2)について、次式(4)を満たすパノラマ画像上の位置(Cx,Cy)が求められる。
Figure JPOXMLDOC01-appb-M000004
 XvYv座標系上の各位置(Xv,Yv)に対応するパノラマ画像上の位置(Cx,Cy)が求められると、位置(Cx,Cy)にあるパノラマ画像の画素の画素値が、キャンバス領域上の対応する位置(Xv,Yv)に書き込まれる。
 このようにしてキャンバス領域上の各位置に画素値が書き込まれると、キャンバス領域の画像が、パノラマ画像上における、ユーザにより指定された視線方向および焦点距離の領域の画像として出力される。
 これらの図3および図4に示した擬似コードで得られる画像は、例えば図5に示す画像となる。なお、図中、右斜め方向、下方向、および左斜め方向は、それぞれワールド座標系のXw軸方向、Yw軸方向、およびZw軸方向を示している。
 図5では、ワールド座標系上の空間に仮想的なスクリーンSC11が設けられており、このスクリーンSC11は、図3および図4の擬似コードの実行時にメモリ上に確保されるキャンバス領域に対応する。また、この例では、スクリーンSC11(キャンバス領域)を基準としたXvYv座標系の原点O’は、スクリーンSC11の中心に位置している。
 いま、ワールド座標系の原点Oを通り、Zw軸と平行な直線を、Yw軸を軸として角度θyawだけ回転させた後、さらにXwZw平面に対して角度θpitchだけ回転させた軸AX11を考える。この軸AX11は、ワールド座標系の原点Oと、XvYv座標系の原点O’とを結ぶ直線であり、軸AX11の長さ、つまり原点Oから原点O’までの距離は焦点距離Fvとなっている。また、原点Oにユーザの視点があるとすると、軸AX11の方向は、ユーザにより指定された角度θyawと角度θpitchから定まる視線方向、つまりスクリーンSC11が位置する方向である。
 したがって、ユーザが角度θyawおよび角度θpitchから定まる視線方向と、焦点距離Fvとを指定することは、パノラマ画像から切り出された画像が表示されるスクリーンSC11の位置を指定することである。
 スクリーンSC11は、軸AX11に直交する平面であり、このスクリーンSC11の大きさは、横Wv,縦Hvとなる。すなわちXvYv座標系において、-Wv/2≦Xv≦Wv/2,-Hv/2≦Yv≦Hv/2の範囲の領域がスクリーンSC11の領域となる(有効な領域となる)。
 ここで、XvYv座標系におけるスクリーンSC11上の任意の位置(Xv,Yv)は、ワールド座標系上では、次式(5)で表わされる。
Figure JPOXMLDOC01-appb-M000005
 また、上述したように、SxSy座標系におけるワイドなパノラマ画像上の各位置(Sx,Sy)には、ワールド座標系における式(1)に示される方向からワールド座標系の原点Oに向かって飛来する光が投影されている。同様に、CxCy座標系におけるパノラマ画像上の各位置(Cx,Cy)には、ワールド座標系における式(2)に示される方向から原点Oに向かって飛来する光が投影されている。
 したがって、式(3)または式(4)により、スクリーンSC11上の各位置(Xv,Yv)の画素の画素値を確定していくことは、ワールド座標系における、ある方向から原点Oに向かって飛来する光を、スクリーンSC11と交わる位置に投影していくことと同値である。
 そのため、図3または図4に示した擬似コードを実行することで出力される画像は、あたかもスクリーンSC11上に投影されている画像(パノラマ画像)となる。すなわち、ユーザは、角度θyawおよび角度θpitchから定まる視線方向と、焦点距離Fvとを指定することで、仮想的なスクリーンSC11に投影された画像(風景)を表示デバイスで観賞することができる。スクリーンSC11に投影された画像、つまり表示デバイスに表示される画像は、ワイドなパノラマ画像から切り出された、パノラマ画像の一部の領域の画像である。
 なお、焦点距離Fvの値を大きくすると、望遠レンズで撮影したかのような画像が表示デバイスに表示され、焦点距離Fvの値を小さくすると、広角レンズで撮影したかのような画像が、表示デバイスに表示される。
 また、以上においてした説明から分かるように、角度θyawは0度以上、360度未満であり、角度θpitchは-90度以上、90度未満である。さらに、焦点距離Fvの取り得る値は、例えば0.1以上、10以下とされる。
[本技術について]
 ところで、パノラマ画像から一部の領域を切り出して表示デバイスに表示させるには、XvYv座標系におけるスクリーンSC11(キャンバス領域)の各位置(Xv,Yv)について、上述した式(3)または式(4)の計算を行なわなくてはならない。しかしながら、これらの計算は三角関数の演算や割り算が必要な複雑な計算である。そのため、演算量が膨大となり、処理速度が遅くなってしまう。
 そこで、本技術では、多項式近似の計算を行なうことにより、スクリーンの各位置に投影されるパノラマ画像の領域を求める計算の演算量をより少なくし、処理速度を向上させる。しかも、演算時には、近似による誤差を評価することで、近似計算による最悪誤差が所望の閾値を超えないようにし、高品質な画像を提示できるようにする。
 換言すれば、本技術は、図3または図4に示した擬似コードにおける演算量を低減させることにより、簡単な計算で、ワイドなパノラマ画像から一部の領域を切り出して表示させることができるようにするものである。
 パノラマ画像の一部の領域を切り出すには、複雑な計算を行なわなければならないので、本技術では、その計算が多項式近似により簡略化されて処理速度の向上が図られるが、多項式近似はあくまで近似であるため、多項式近似による計算では計算誤差が発生する。
 本技術では、上述した図3や図4に示した擬似コードの実行時に行なわれる計算に対して、多項式近似が適用される。
 すなわち、XvYv座標系におけるスクリーン(キャンバス領域)の所定の位置(Xv,Yv)の近傍では、ある多項式近似により計算が行なわれる。そして、多項式近似の計算誤差がある程度大きくなった場合、つまり計算誤差が所定の閾値を超えるようになった場合には、計算誤差が所定の閾値を超える位置からは、別の多項式近似で計算が行なわれていく。
 例えば図3や図4に示した擬似コード実行時の計算に多項式近似を適用する場合、計算誤差がどの位置で閾値を超えるかを特定することができないと、多項式近似による高速処理で得られる画像の画質が、計算誤差により低下してしまう可能性があった。つまり、最終的に得られる画像が適切な画像でなくなってしまう可能性があった。
 そのため本技術では、多項式近似による計算誤差を評価し、その評価に応じて計算に用いる多項式近似を切り替えていく。これにより、パノラマ画像における所望の方向の領域を簡単かつ迅速に切り出すことができ、しかも切り出された画像として、より高品質な画像を提示することができるようになる。
[多項式近似について]
 まず、本技術について説明する前に、多項式近似(テイラー展開)について説明する。
 微分可能な任意の関数G(L)について、次式(6)の関係が成立する。すなわち、式(6)は、関数G(L)をテイラー展開することで得られる。
Figure JPOXMLDOC01-appb-M000006
 ここで、関数G(L)を(n-1)次多項式近似した関数Ga(L)は、次式(7)により示される関数となる。
Figure JPOXMLDOC01-appb-M000007
 これらの式(6)および式(7)から、次式(8)を導くことができる。すなわち、式(8)は、関数G(L)と、関数G(L)を(n-1)次多項式近似した関数Ga(L)との誤差を示している。
Figure JPOXMLDOC01-appb-M000008
 また、任意の0<L≦Lについて、次式(9)が成立する。
Figure JPOXMLDOC01-appb-M000009
 したがって、関数G(L)の所定のLが次式(10)を満たせば、関数G(L)に代えて近似関数である関数Ga(L)を用いても、閉区間[0,L]内のすべての位置において、近似による計算誤差はたかだかεである。
Figure JPOXMLDOC01-appb-M000010
 以上が、テイラーの定理についての説明である。
[多項式近似の適用について]
 それでは、次に、上述した式(3)や式(4)に対してテイラーの定理を適用した場合について考える。なお、以降において、nは固定値であり、例えばnは3または4程度の値とされる。
 まず、上述した式(3)を変形することで次式(11)が得られる。
Figure JPOXMLDOC01-appb-M000011
 同様に、上述した式(4)を変形することで次式(12)が得られる。
Figure JPOXMLDOC01-appb-M000012
 なお、式(3)および式(4)は比例関係の式であり、それらの式の右辺の各要素のみを焦点距離Fvで除算しても比例関係は保たれるので、式(11)および式(12)が導かれる。
 式(11)において、Sx,Syは、それぞれ(Xv/Fv)、(Yv/Fv)、θyaw、およびθpitchの関数となるので、これを明示すると次式(13)となる。
Figure JPOXMLDOC01-appb-M000013
 同様に、式(12)において、Cx,Cyは、それぞれ(Xv/Fv)、(Yv/Fv)、θyaw、およびθpitchの関数となるので、これを明示すると次式(14)となる。
Figure JPOXMLDOC01-appb-M000014
 さて、上述した式(11)から次式(15)の関係が導けるので、以下の式(16)の関係が成立する。
Figure JPOXMLDOC01-appb-M000015
Figure JPOXMLDOC01-appb-M000016
 同様に、上述した式(12)から次式(17)の関係が導けるので、以下の式(18)の関係が成立する。
Figure JPOXMLDOC01-appb-M000017
Figure JPOXMLDOC01-appb-M000018
 ここで、次式(19)で定義される関数Us(x,y,θ)、および関数Vs(x,y,θ)と、式(20)で定義される関数Uc(x,y,θ)、および関数Vc(x,y,θ)とを考える。
Figure JPOXMLDOC01-appb-M000019
Figure JPOXMLDOC01-appb-M000020
 いま、角度θyaw=0である場合における式(11)と式(19)とを比較し、さらに式(16)を考慮すると、次式(21)が導かれる。
Figure JPOXMLDOC01-appb-M000021
 同様に、角度θyaw=0である場合における式(12)と式(20)とを比較し、さらに式(18)を考慮すると、次式(22)が導かれる。
Figure JPOXMLDOC01-appb-M000022
 さらに、式(21)における最初の式、つまり関数Sx(Xv/Fv,Yv/Fv,θyawpitch)にテイラーの定理を適用すると、次式(23)が得られる。
Figure JPOXMLDOC01-appb-M000023
 なお、式(23)は、変数Yvについて、Yvの周りで関数Sx(Xv/Fv,Yv/Fv,θyawpitch)をテイラー展開して得られる式である。また、式(23)においてYvは、開区間(Yv,Yv)内の適切な値である。
 したがって、ある特定のXv,ある特定のFv,ある特定のθyaw,ある特定のθpitchと、閉区間[Yv,Yv]内の任意のYvの値に対して、関数Sx(Xv/Fv,Yv/Fv,θyawpitch)を次式(24)で示す多項式で近似した場合、その近似による誤差は、式(25)に示される値を超えることはない。
Figure JPOXMLDOC01-appb-M000024
Figure JPOXMLDOC01-appb-M000025
 なお、式(24)に示される関数は、式(21)に示される最初の式をYvの周りで多項式展開した(n-1)次多項式近似関数である。
 Sxと同様のことがSy,Cx,Cyについてもいえる。
 すなわち、ある特定のXv,ある特定のFv,ある特定のθyaw,ある特定のθpitchと、閉区間[Yv,Yv]内の任意のYvの値に対して、式(21)の関数Sy(Xv/Fv,Yv/Fv,θyawpitch)を次式(26)で示す多項式で近似した場合、その近似による誤差は、式(27)に示される値を超えることはない。
Figure JPOXMLDOC01-appb-M000026
Figure JPOXMLDOC01-appb-M000027
 また、ある特定のXv,ある特定のFv,ある特定のθyaw,ある特定のθpitchと、閉区間[Yv,Yv]内の任意のYvの値に対して、式(22)の関数Cx(Xv/Fv,Yv/Fv,θyawpitch)を次式(28)で示す多項式で近似した場合、その近似による誤差は、式(29)に示される値を超えることはない。
Figure JPOXMLDOC01-appb-M000028
Figure JPOXMLDOC01-appb-M000029
 さらに、ある特定のXv,ある特定のFv,ある特定のθyaw,ある特定のθpitchと、閉区間[Yv,Yv]内の任意のYvの値に対して、式(22)の関数Cy(Xv/Fv,Yv/Fv,θyawpitch)を次式(30)で示す多項式で近似した場合、その近似による誤差は、式(31)に示される値を超えることはない。
Figure JPOXMLDOC01-appb-M000030
Figure JPOXMLDOC01-appb-M000031
[各関数の極値のリストアップについて]
 ところで、式(19)で定義した関数Us(x,y,θ)をyによりn回偏微分して得られた関数において、xとθを固定して、yを変数とみたときの極値を考える。
 すなわち、図6に示す擬似コードを実行することにより、関数Us(x,y,θ)のn次微分関数が極値をとるときのyの値を全てリストアップしたとする。具体的には、各xおよびθの組について、関数Us(x,y,θ)のn次微分関数が次式(32)または式(33)を満たすときのyの値が、極値となるyの値yus(x,θ)(i)として登録される。
Figure JPOXMLDOC01-appb-M000032
Figure JPOXMLDOC01-appb-M000033
 このとき、固定値であるθの値は、-89.9≦θ≦89.9までの範囲で、つまり-89.9から89.9まで刻み幅0.1で変化するように定められる。
 また、固定値であるxの値は、-10×(Wv/2)+0.1≦x≦10×(Wv/2)-0.1の範囲で、つまり-10×(Wv/2)+0.1から10×(Wv/2)-0.1まで刻み幅0.1で変化するように定められる。さらに、変数であるyの値は、-10×(Hv/2)+0.1≦y≦10×(Hv/2)-0.1の範囲で、つまり-10×(Hv/2)+0.1から10×(Hv/2)-0.1まで刻み幅0.1で変化するように定められる。ここで、xの値を定めるWv、およびyの値を定めるHvは、パノラマ画像の一部の領域が投影されるスクリーンSC11の横幅(Xv軸方向の幅)および縦幅(Yv軸方向の高さ)である。
 なお、関数Us(x,y,θ)のn次微分関数が極値となるyの値yus(x,θ)(i)における値iは、yの値が小さい方から何番目の極値となるyであるかを示している。すなわち、所定の固定値x,θに対して、関数Us(x,y,θ)をyによりn回偏微分して得られる関数について、yを変数とみたときに極値となるyの値は、1つとは限らないので、何番目の極値であるかが添え字「i」が用いられて表現されている。
 したがって、関数Us(x,y,θ)のyによるn次微分関数について、yを変数とみたときに、そのn次微分関数が極値をとるyの値は、yus(x,θ)(1),yus(x,θ)(2),yus(x,θ)(3),・・・となる。
 また、この例ではx、y、θの各値の刻み幅は0.1とされているが、これらの値の刻み幅は0.1に限らずどのような値であってもよい。但し、これらの値の刻み幅を細かくするほど、値yus(x,θ)(i)の算出精度は向上するが、リストアップされる値yus(x,θ)(i)のデータが膨大な量となるので、各値の刻み幅は0.1程度が望ましい。
 さらに、n次微分関数が極値をとるときのyの値yus(x,θ)(i)のみが登録されるようにしてもよいし、値yus(x,θ)(i)とそのときの極値とが登録されるようにしてもよい。以下においては、値yus(x,θ)(i)とそのときの極値とが登録されるものとして説明を続ける。
 以上のようにしてリストアップされた、各固定値x,θに対する関数Us(x,y,θ)のn次微分関数の極値をとるときのyの値yus(x,θ)(i)は、上述した式(25)に示されるSxの近似誤差の最大値の算出に用いられる。
 関数Us(x,y,θ)と同様に、式(19)で定義した関数Vs(x,y,θ),式(20)で定義した関数Uc(x,y,θ)および関数Vc(x,y,θ)についても、それらの関数の変数yによるn次微分関数が極値をとるときのyの値をリストアップすることを考える。
 すなわち、まず図7に示す擬似コードを実行することにより、関数Vs(x,y,θ)をyによりn回偏微分して得られたn次微分関数において、xとθを固定して、yを変数とみたときにn次微分関数が極値をとるときのyの値を全てリストアップしたとする。
 具体的には、各xおよびθについて、関数Vs(x,y,θ)のn次微分関数が次式(34)または式(35)を満たすときのyの値が、極値となるyの値yvs(x,θ)(i)として登録される。より詳細には、値yvs(x,θ)(i)とそのときの極値とが登録される。
Figure JPOXMLDOC01-appb-M000034
Figure JPOXMLDOC01-appb-M000035
 このとき、固定値であるθの値は、-89.9から89.9まで刻み幅0.1で変化するように定められる。また、固定値であるxの値は、-10×(Wv/2)+0.1から10×(Wv/2)-0.1まで刻み幅0.1で変化するように定められ、変数であるyの値は、-10×(Hv/2)+0.1から10×(Hv/2)-0.1まで刻み幅0.1で変化するように定められる。
 なお、関数Vs(x,y,θ)のn次微分関数が極値となるyの値yvs(x,θ)(i)における値iは、yの値が小さい方から何番目の極値となるyであるかを示している。 
 以上のようにしてリストアップされた、各固定値x,θに対する関数Vs(x,y,θ)のn次微分関数の極値をとるときのyの値yvs(x,θ)(i)は、上述した式(27)に示されるSyの近似誤差の最大値の算出に用いられる。
 また、図8に示す擬似コードを実行することにより、関数Uc(x,y,θ)をyによりn回偏微分して得られたn次微分関数において、xとθを固定して、yを変数とみたときにn次微分関数が極値をとるときのyの値を全てリストアップしたとする。
 具体的には、各xおよびθについて、関数Uc(x,y,θ)のn次微分関数が次式(36)または式(37)を満たすときのyの値が、極値となるyの値yuc(x,θ)(i)として登録される。より詳細には、値yuc(x,θ)(i)とそのときの極値とが登録される。
Figure JPOXMLDOC01-appb-M000036
Figure JPOXMLDOC01-appb-M000037
 このとき、固定値であるθの値は、-89.9から89.9まで刻み幅0.1で変化するように定められる。また、固定値であるxの値は、-10×(Wv/2)+0.1から10×(Wv/2)-0.1まで刻み幅0.1で変化するように定められ、変数であるyの値は、-10×(Hv/2)+0.1から10×(Hv/2)-0.1まで刻み幅0.1で変化するように定められる。
 なお、関数Uc(x,y,θ)のn次微分関数が極値となるyの値yuc(x,θ)(i)における値iは、yの値が小さい方から何番目の極値となるyであるかを示している。
 以上のようにしてリストアップされた、各固定値x,θに対する関数Uc(x,y,θ)のn次微分関数の極値をとるときのyの値yuc(x,θ)(i)は、上述した式(29)に示されるCxの近似誤差の最大値の算出に用いられる。
 さらに、図9に示す擬似コードを実行することにより、関数Vc(x,y,θ)をyによりn回偏微分して得られたn次微分関数において、xとθを固定して、yを変数とみたときにn次微分関数が極値をとるときのyの値を全てリストアップしたとする。
 具体的には、各xおよびθについて、関数Vc(x,y,θ)のn次微分関数が次式(38)または式(39)を満たすときのyの値が、極値となるyの値yvc(x,θ)(i)として登録される。より詳細には、値yvc(x,θ)(i)とそのときの極値とが登録される。
Figure JPOXMLDOC01-appb-M000038
Figure JPOXMLDOC01-appb-M000039
 このとき、固定値であるθの値は、-89.9から89.9まで刻み幅0.1で変化するように定められる。また、固定値であるxの値は、-10×(Wv/2)+0.1から10×(Wv/2)-0.1まで刻み幅0.1で変化するように定められ、変数であるyの値は、-10×(Hv/2)+0.1から10×(Hv/2)-0.1まで刻み幅0.1で変化するように定められる。
 なお、関数Vc(x,y,θ)のn次微分関数が極値となるyの値yvc(x,θ)(i)における値iは、yの値が小さい方から何番目の極値となるyであるかを示している。
 以上のようにしてリストアップされた、各固定値x,θに対する関数Vc(x,y,θ)のn次微分関数の極値をとるときのyの値yvc(x,θ)(i)は、上述した式(31)に示されるCyの近似誤差の最大値の算出に用いられる。
[近似誤差の評価について]
 さて、以上において説明した各関数のn次微分関数が極値をとるときの値を用いることで、Sx,Sy,Cx,Cyの各近似誤差を評価することが可能となる。
 すなわち、例えば閉区間[Yv,Yv]において、上述した式(25)に示されるSxの近似誤差の値は、次式(40)乃至式(42)のそれぞれにより求まる3つの値の最大値と等しくなる。
Figure JPOXMLDOC01-appb-M000040
Figure JPOXMLDOC01-appb-M000041
Figure JPOXMLDOC01-appb-M000042
 なお、式(40)乃至式(42)において、Xaは0.1単位の所定のxの値であり、かつXv/Fvになるべく近い値(最も近い値)である。また、θaは0.1単位の所定のθの値であり、かつθpitchになるべく近い値(最も近い値)である。
 式(40)の計算では、図6の擬似コードの演算によりリストアップされた値yus(x,θ)(i)が用いられる。つまり式(40)の計算は、固定のx=xa,θ=θaについて、Yv/Fv<y<Yv/Fvの範囲において関数Us(x,y,θ)のn次微分関数の絶対値の最大値を求め、得られた最大値に|Yv-Yv/(n!×Fv)を乗算した値を出力値として求める計算である。
 ここで、n次微分関数の絶対値の最大値を求める計算は、リストアップされた値yus(x,θ)(i)のうち、Yv/Fv<yus(xa,θa)(i)<Yv/Fvを満たすものについて、その値yus(xa,θa)(i)におけるn次微分関数の絶対値を求め、さらにそれらの絶対値の最大値を求める計算である。値yus(xa,θa)(i)におけるn次微分関数の絶対値とは、値yus(xa,θa)(i)に対応付けられた極値の絶対値である。
 これは、YvからYvまでの値のなかで、式(25)に示す誤差が最大となる値を求めるときには、YvからYvまでの間にある極値についてのみ調べればよいからである。つまり、誤差が最大となる可能性のあるYvについてのみ調べればよいからである。
 また、式(40)の計算では、閉区間[Yv,Yv]の両端、つまりYvおよびYvについては、計算が行なわれない。そこで、上述した式(41)および式(42)の計算を行なうことで、Yv,Yv、つまりy=Yv/Fv,Yv/FvにおけるSxの近似誤差の値も算出される。
 したがって、以上の式(40)乃至式(42)の計算により得られた各値のうちの最大値が、閉区間[Yv,Yv]におけるSxの近似誤差の値となる。なお、本来であれば、式(40)の計算は、xの値がXv/Fvで、かつθの値がθpitchであるときの極値で計算すべきであるが、yus(x,θ)(i)のxおよびθは0.1単位でしかリストアップされていないので、最も近いyus(x,θ)(i)で極値が近似されている。
 Sxと同様にして、Sy,Cx,Cyの各近似誤差を評価することが可能である。
 例えば、閉区間[Yv,Yv]において、上述した式(27)に示されるSyの近似誤差の値は、次式(43)乃至式(45)のそれぞれにより求まる3つの値の最大値と等しくなる。
Figure JPOXMLDOC01-appb-M000043
Figure JPOXMLDOC01-appb-M000044
Figure JPOXMLDOC01-appb-M000045
 なお、式(43)乃至式(44)において、Xaは0.1単位の所定のxの値であり、かつXv/Fvになるべく近い値(最も近い値)である。また、θaは0.1単位の所定のθの値であり、かつθpitchになるべく近い値(最も近い値)である。
 式(43)の計算では、図7の擬似コードの演算によりリストアップされた値yvs(x,θ)(i)に対応付けられている極値が用いられる。つまり式(43)の計算は、固定のx=xa,θ=θaについて、Yv/Fv<y<Yv/Fvの範囲において関数Vs(x,y,θ)のn次微分関数の絶対値の最大値を求めることで行なわれる。
 また、式(43)の計算では、閉区間[Yv,Yv]の両端については、計算が行なわれないので、式(44)および式(45)の計算を行なうことで、Yv,YvにおけるSyの近似誤差の値も算出される。したがって、以上の式(43)乃至式(45)の計算により得られた各値のうちの最大値が、閉区間[Yv,Yv]におけるSyの近似誤差の値となる。
 また、例えば閉区間[Yv,Yv]において、上述した式(29)に示されるCxの近似誤差の値は、次式(46)乃至式(48)のそれぞれにより求まる3つの値の最大値と等しくなる。
Figure JPOXMLDOC01-appb-M000046
Figure JPOXMLDOC01-appb-M000047
Figure JPOXMLDOC01-appb-M000048
 なお、式(46)乃至式(48)において、Xaは0.1単位の所定のxの値であり、かつXv/Fvになるべく近い値(最も近い値)である。また、θaは0.1単位の所定のθの値であり、かつθpitchになるべく近い値(最も近い値)である。
 式(46)の計算では、図8の擬似コードの演算によりリストアップされた値yuc(x,θ)(i)に対応付けられている極値が用いられる。つまり式(46)の計算は、固定のx=xa,θ=θaについて、Yv/Fv<y<Yv/Fvの範囲において関数Uc(x,y,θ)のn次微分関数の絶対値の最大値を求めることで行なわれる。
 また、式(46)の計算では、閉区間[Yv,Yv]の両端については、計算が行なわれないので、式(47)および式(48)の計算を行なうことで、Yv,YvにおけるCxの近似誤差の値も算出される。したがって、以上の式(46)乃至式(48)の計算により得られた各値のうちの最大値が、閉区間[Yv,Yv]におけるCxの近似誤差の値となる。
 さらに、例えば閉区間[Yv,Yv]において、上述した式(31)に示されるCyの近似誤差の値は、次式(49)乃至式(51)のそれぞれにより求まる3つの値の最大値と等しくなる。
Figure JPOXMLDOC01-appb-M000049
Figure JPOXMLDOC01-appb-M000050
Figure JPOXMLDOC01-appb-M000051
 なお、式(49)乃至式(51)において、Xaは0.1単位の所定のxの値であり、かつXv/Fvになるべく近い値(最も近い値)である。また、θaは0.1単位の所定のθの値であり、かつθpitchになるべく近い値(最も近い値)である。
 式(49)の計算では、図9の擬似コードの演算によりリストアップされた値yvc(x,θ)(i)に対応付けられている極値が用いられる。つまり式(49)の計算は、固定のx=xa,θ=θaについて、Yv/Fv<y<Yv/Fvの範囲において関数Vc(x,y,θ)のn次微分関数の絶対値の最大値を求めることで行なわれる。
 また、式(49)の計算では、閉区間[Yv,Yv]の両端については、計算が行なわれないので、式(50)および式(51)の計算を行なうことで、Yv,YvにおけるCyの近似誤差の値も算出される。したがって、以上の式(49)乃至式(51)の計算により得られた各値のうちの最大値が、閉区間[Yv,Yv]におけるCyの近似誤差の値となる。
 以上において説明したことをまとめると、次のことがいえる。
 すなわち、パノラマ画像が球面に投影された画像である場合、x,y,θの関数である関数Us(x,y,θ)と関数Vs(x,y,θ)を式(19)により定義し、式(3)により定義されるθyaw,θpitch,Fv,Xv,Yvの関数であるSxおよびSyの近似式を考える。
 具体的には、θyaw,θpitch,Fv,Xvのそれぞれを任意の値に固定して、Yvとして閉区間[Yv,Yv]の範囲で、関数Sxを式(24)で近似し、関数Syを式(26)で近似したとする。
 このとき、関数Sxの値と、式(24)で示される関数Sxの近似値との差、すなわち近似による誤差は、式(40)乃至式(42)により得られる3つの値の最大値を超えることはない。また、関数Syの値と、式(26)で示される関数Syの近似値との差(近似誤差)は、式(43)乃至式(45)により得られる3つの値の最大値を超えることはない。
 ここで、式(40)における値yus(x,θ)(i)と、式(43)における値yvs(x,θ)(i)は、それぞれ図6および図7に示した擬似コードを実行することにより生成されるデータである。また、式(40)乃至式(45)において、Xaは0.1単位の値であり、かつXv/Fvになるべく近い値である。同様にθaは0.1単位の値であり、かつθpitchになるべく近い値である。
 このように関数Us(x,y,θ)や関数Vs(x,y,θ)の偏導関数の極値に関するデータをリストアップすることで、近似による誤差を定量的に評価することができる。これにより、近似誤差の許容範囲内で、かつより少ない計算でパノラマ画像の一部の領域を切り出すことができる。
 以上のことから、パノラマ画像が球面に投影された画像である場合、所定の固定値Xvに対して、スクリーンSC11(キャンバス領域)の位置(Xv,Yv)から位置(Xv,Yv)までの領域には、次のようにしてパノラマ画像の画素を書き込めばよい。
 すなわち、位置(Xv,Yv)から位置(Xv,Yv)までの各位置(Xv,Yv)に対して式(24)および式(26)の近似計算が行なわれ、スクリーンSC11上の位置(Xv,Yv)に対応するパノラマ画像上の位置(Sx,Sy)が算出される。そして、このようにして算出されたパノラマ画像上の位置(Sx,Sy)にある画素の画素値が、スクリーンSC11上の位置(Xv,Yv)の画素の画素値として書き込まれる。
 また、位置(Xv,Yv)がスクリーンSC11のYv軸方向側の端でない場合には、位置(Xv,Yv)から位置(Xv,Yv)までの画素の書き込み後、さらに位置(Xv,Yv+1)が新たな位置(Xv,Yv)とされ、画素の書き込みが繰り返し行われる。
 以上の処理により簡単な計算で、迅速にワイドなパノラマ画像の一部を切り出して表示させることができる。なお、スクリーンSC11上の位置(Xv,Yv)におけるYv座標であるYvは、Yv=Yvに対して、上述した式(40)乃至式(45)の最大値が予め定めた閾値以下となる最大のYv座標とすればよい。つまり、近似誤差が許容範囲内となる最大のYv座標をYvとすればよい。そうすれば、スクリーンSC11上に投影される画像の近似誤差による品質劣化を防止し、高品質な画像を得ることができる。
 一方、パノラマ画像が円筒面に投影された画像である場合、x,y,θの関数である関数Uc(x,y,θ)と関数Vc(x,y,θ)を式(20)により定義し、式(4)により定義されるθyaw,θpitch,Fv,Xv,Yvの関数であるCxおよびCyの近似式を考える。
 具体的には、θyaw,θpitch,Fv,Xvのそれぞれを任意の値に固定して、Yvとして閉区間[Yv,Yv]の範囲で、関数Cxを式(28)で近似し、関数Cyを式(30)で近似したとする。
 このとき、関数Cxの値と、式(28)で示される関数Cxの近似値との差、すなわち近似による誤差は、式(46)乃至式(48)により得られる3つの値の最大値を超えることはない。また、関数Cyの値と、式(30)で示される関数Cyの近似値との差(近似誤差)は、式(49)乃至式(51)により得られる3つの値の最大値を超えることはない。
 ここで、式(46)における値yuc(x,θ)(i)と、式(49)における値yvc(x,θ)(i)は、それぞれ図8および図9に示した擬似コードを実行することにより生成されるデータである。また、式(46)乃至式(51)において、Xaは0.1単位の値であり、かつXv/Fvになるべく近い値である。同様にθaは0.1単位の値であり、かつθpitchになるべく近い値である。
 このようにUc(x,y,θ)や関数Vc(x,y,θ)の偏導関数の極値に関するデータをリストアップすることで、近似による誤差を定量的に評価することができる。これにより、近似誤差の許容範囲内で、かつより少ない計算でパノラマ画像の一部の領域を切り出すことができる。
 以上のことから、パノラマ画像が円筒面に投影された画像である場合、所定の固定値Xvに対して、スクリーンSC11の位置(Xv,Yv)から位置(Xv,Yv)までの領域には、次のようにしてパノラマ画像の画素を書き込めばよい。
 すなわち、位置(Xv,Yv)から位置(Xv,Yv)までの各位置(Xv,Yv)に対して式(28)および式(30)の近似計算が行なわれ、スクリーンSC11上の位置(Xv,Yv)に対応するパノラマ画像上の位置(Cx,Cy)が算出される。そして、このようにして算出されたパノラマ画像上の位置(Cx,Cy)にある画素の画素値が、スクリーンSC11上の位置(Xv,Yv)の画素の画素値として書き込まれる。
 また、位置(Xv,Yv)がスクリーンSC11のYv軸方向側の端でない場合には、位置(Xv,Yv)から位置(Xv,Yv)までの画素の書き込み後、さらに位置(Xv,Yv+1)が新たな位置(Xv,Yv)とされ、画素の書き込みが繰り返し行われる。
 以上の処理により簡単な計算で、迅速にワイドなパノラマ画像の一部を切り出して表示させることができる。なお、スクリーンSC11上の位置(Xv,Yv)におけるYv座標であるYvは、Yv=Yvに対して、上述した式(46)乃至式(51)の最大値が予め定めた閾値以下となる最大のYv座標とすればよい。
〈第1の実施の形態〉
[画像処理装置の構成例]
 次に、本技術を適用した具体的な実施の形態について説明する。
 まず、パノラマ画像が球面に投影された画像である場合について説明する。そのような場合、画像処理装置は、例えば図10に示すように構成される。
 図10の画像処理装置31は、取得部41、入力部42、決定部43、書き込み部44、および表示部45から構成される。
 取得部41は、パノラマ画像を取得して書き込み部44に供給する。ここで、取得部41により取得されるパノラマ画像は、球面に投影された画像である。入力部42は、ユーザの操作に応じた信号を決定部43に供給する。
 決定部43は、パノラマ画像の一部の領域を切り出して表示部45に表示させる場合に、1つの近似関数が用いられてパノラマ画像の書き込みが行なわれる、書き込み部44に確保されたキャンバス領域上の領域を決定する。決定部43は、極値データ生成部61、および誤差算出部62を備えている。
 極値データ生成部61は、パノラマ画像上の位置(Sx,Sy)の算出の近似誤差の評価に必要なn次微分関数が極値をとるときのyの値と、そのときの極値とを極値データとして生成する。すなわち、極値データとして、n次微分関数が極値をとるときのyの値yus(x,θ)(i)とそのときの極値、および値yvs(x,θ)(i)とそのときの極値が算出される。誤差算出部62は、極値データに基づいて、パノラマ画像上の位置(Sx,Sy)の算出の近似誤差を算出する。
 書き込み部44は、必要に応じて決定部43と情報の授受を行ないながら、取得部41からのパノラマ画像の一部を、確保したキャンバス領域に書き込むことで、パノラマ画像における、ユーザにより指定された視線方向および焦点距離の領域の画像を生成する。
 また、書き込み部44は、対応位置算出部71を備えており、対応位置算出部71は、キャンバス領域の各位置に書き込むパノラマ画像上の画素の位置を算出する。書き込み部44は、キャンバス領域に書き込まれた画像(以下、出力画像と称する)を表示部45に供給する。
 表示部45は、例えば液晶ディスプレイなどからなり、書き込み部44から供給された出力画像を表示する。表示部45は、上述した表示デバイスに相当するものである。なお、以下では、表示部45の表示画面の大きさは、横方向がWv画素,縦方向がHv画素であるものとする。
[画像出力処理の説明]
 ところで、画像処理装置31にパノラマ画像が供給され、ユーザにより出力画像の表示が指示されると、画像処理装置31は、供給されたパノラマ画像から出力画像を生成して出力する画像出力処理を開始する。以下、図11のフローチャートを参照して、画像処理装置31による画像出力処理について説明する。
 ステップS11において、取得部41はパノラマ画像を取得し、書き込み部44に供給する。
 ステップS12において、極値データ生成部61は、関数Us(x,y,θ)をyによりn回偏微分して得られるn次微分関数が極値をとるときのyの値yus(x,θ)(i)を算出し、得られた各値yus(x,θ)(i)と、値yus(x,θ)(i)における極値とを極値データとして保持する。
 具体的には、極値データ生成部61は図6に示した擬似コードを実行し、式(32)または式(33)を満たすときのyの値を、極値となるyの値yus(x,θ)(i)とする。
 ステップS13において、極値データ生成部61は、関数Vs(x,y,θ)をyによりn回偏微分して得られるn次微分関数が極値をとるときのyの値yvs(x,θ)(i)を算出し、得られた各値yvs(x,θ)(i)と、値yvs(x,θ)(i)における極値とを極値データとして保持する。
 具体的には、極値データ生成部61は図7に示した擬似コードを実行し、式(34)または式(35)を満たすときのyの値を、極値となるyの値yvs(x,θ)(i)とする。
 このようにして求められた極値データとしてのyの値yus(x,θ)(i)および値yvs(x,θ)(i)と、それらのyの値における極値とは、キャンバス領域(スクリーン)上の位置(Xv,Yv)に書き込まれるパノラマ画像上の位置(Sx,Sy)を近似により求めるときの近似誤差の算出に用いられる。なお、極値データは、例えばルックアップテーブルなどの形式で保持されるようにしてもよい。
 ステップS14において、書き込み部44は、出力画像を生成するためのキャンバス領域を図示せぬメモリ上に確保する。このキャンバス領域は図5に示した仮想的なスクリーンSC11に相当する。
 なお、キャンバス領域の中心を原点O’としてXvYv座標系が定められ、キャンバス領域のXv方向(横方向)の幅はWvとされ、Yv方向(縦方向)の高さはHvとされる。したがって、XvYv座標系におけるキャンバス領域の範囲は、-Wv/2≦Xv≦Wv/2,-Hv/2≦Yv≦Hv/2とされる。
 ステップS15において、入力部42は、角度θyaw、角度θpitch、および焦点距離Fvの入力を受け付ける。ユーザは、入力部42を操作して、角度θyawおよび角度θpitchから定まる視線方向と、焦点距離Fvとを入力する。入力部42は、ユーザにより入力された角度θyaw、角度θpitch、および焦点距離Fvを決定部43に供給する。
 ステップS16において、書き込み部44は、キャンバス領域上のパノラマ画像の書き込みを行なう領域の開始位置のXv座標を-Wv/2とする。
 なお、キャンバス領域へのパノラマ画像の書き込みは、Xv座標が同じである画素からなる領域ごとに、-Yv方向側の端から+Yv方向側に順番に行なわれるものとする。また、キャンバス領域におけるYv方向に並ぶいくつかの画素からなる領域が書き込み領域とされ、1つの近似関数を用いた計算により、書き込み領域内の各位置(Xv,Yv)に対応するパノラマ画像上の位置が求められる。
 以下においては、書き込み領域の-Yv方向側の端、つまり最もYv座標が小さい画素の位置を、書き込み領域の開始位置とも称し、書き込み領域の+Yv方向側の端、つまり最もYv座標が大きい画素の位置を、書き込み領域の終了位置とも称することとする。また、以下、書き込み領域の開始位置のYv座標をYvとし、書き込み領域の終了位置のYv座標をYvとする。
 ステップS17において、書き込み部44は、書き込み領域の開始位置のYv座標をYv=-Hv/2とする。
 したがって、キャンバス領域上の書き込み領域の開始位置は、位置(-Wv/2,-Hv/2)となる。すなわち、図5のスクリーンSC11の図中、左上の端(頂点)の位置が、書き込み領域の開始位置とされる。
 ステップS18において、画像処理装置31は、終了位置算出処理を行なって、書き込み領域の終了位置のYv座標であるYvの値を算出する。
 なお、この終了位置算出処理は後述するが、終了位置算出処理では、ステップS12およびステップS13の処理で求められた極値データが用いられて、書き込み領域の終了位置が定められる。
 ステップS19において、画像処理装置31は、書き込み処理を行って、キャンバス領域上の書き込み領域にパノラマ画像の画素の画素値を書き込む。なお、書き込み処理の詳細は後述するが、書き込み処理では、上述した式(24)および式(26)の近似関数が用いられて、書き込み領域の各位置(Xv,Yv)に対応するパノラマ画像上の位置(Sx,Sy)が算出される。
 ステップS20において、書き込み部44は、現時点における書き込み領域の終了位置のYv座標がYv=Hv/2であるか否かを判定する。
 例えば、書き込み領域の終了位置が、キャンバス領域の+Yv方向側の端である場合、Yv=Hv/2であると判定される。この場合、キャンバス領域のYv方向に並ぶ画素からなる1つの画素列に対して、パノラマ画像の書き込みが行なわれたことになる。
 ステップS20においてYv=Hv/2であると判定されなかった場合、まだキャンバス領域上の1つの画素列に対する書き込みが終了していないので、処理はステップS21に進む。
 ステップS21において、書き込み部44は、書き込み領域の開始位置のYv座標であるYvをYv+1とする。
 すなわち、書き込み部44は、現時点における書き込み領域の終了位置に対して+Yv方向側に隣接する位置を、次の新たな書き込み領域の開始位置とする。例えば、現時点における書き込み領域の終了位置の座標が(Xv,Yv)である場合、座標が(Xv,Yv+1)である位置が、新たな書き込み領域の開始位置とされる。
 新たな書き込み領域の開始位置が定められると、その後、処理はステップS18に戻り、上述した処理が繰り返される。すなわち、新たな書き込み領域の終了位置が定められ、書き込み領域へのパノラマ画像の書き込みが行なわれる。
 これに対して、ステップS20において、Yv=Hv/2であると判定された場合、キャンバス領域上の1つの画素列に対する書き込みが終了したので、ステップS22において、書き込み部44は、Xv=Wv/2であるか否かを判定する。
 すなわち、現時点における書き込み領域のXv座標が、キャンバス領域の+Xv方向側の端のXv座標であるか否かが判定される。現時点における書き込み領域の位置がキャンバス領域の+Xv方向側の端の位置であるということは、キャンバス領域全体に対してパノラマ画像の書き込みが行なわれたということである。
 ステップS22において、Xv=Wv/2でないと判定された場合、すなわち、まだキャンバス領域に対するパノラマ画像の書き込みが終了していない場合、ステップS23において、書き込み部44はXv=Xv+1とする。すなわち、書き込み部44は、現時点における書き込み領域に対して+Xv方向側に隣接する位置のXv座標を、新たな書き込み領域のXv座標とする。
 新たな書き込み領域のXv座標が定められると、その後、処理はステップS17に戻り、上述した処理が繰り返される。すなわち、新たな書き込み領域の開始位置および終了位置が定められ、書き込み領域へのパノラマ画像の書き込みが行なわれる。
 これに対して、ステップS22において、Xv=Wv/2であると判定された場合、すなわちキャンバス領域へのパノラマ画像の書き込みが終了した場合、ステップS24において、書き込み部44は、キャンバス領域の画像を出力画像として出力する。
 書き込み部44から出力された画像は、出力画像として表示部45に供給され、表示される。これにより、パノラマ画像における、ユーザにより指定された視線方向および焦点距離の領域の画像(出力画像)が表示部45に表示されるので、ユーザは、表示された出力画像を観賞することができる。
 出力画像が出力されると、その後、処理はステップS15に戻り、上述した処理が繰り返される。すなわち、ユーザは、パノラマ画像における別の領域を観賞したい場合に、視線方向と焦点距離を再度入力すると、ステップS15乃至ステップS24の処理により、新たな出力画像が生成され、表示される。ユーザにより、出力画像の表示終了が指示されると、画像出力処理は終了する。
 以上のようにして画像処理装置31は、ユーザにより視線方向および焦点距離が指定されると、それらの視線方向および焦点距離により特定されるパノラマ画像の各画素を、キャンバス領域に書き込んで出力画像を生成する。このとき、画像処理装置31は、品質の劣化が生じないように、近似誤差の評価結果に基づいて書き込み領域の終了位置を定め、書き込み領域へのパノラマ画像の画素の書き込みを行なっていく。
 これにより、パノラマ画像における所望の方向の領域を簡単かつ迅速に切り出して出力画像とすることができるとともに、高品質な出力画像を提示することができる。
[終了位置算出処理の説明]
 次に、図12のフローチャートを参照して、図11のステップS18の処理に対応する終了位置算出処理について説明する。
 ステップS51において、決定部43は、閾値th=0.5とする。ここで、閾値thは、近似関数を用いたパノラマ画像上の位置(Sx,Sy)の算出に対する近似誤差の許容量を示している。なお、閾値thの値は、0.5に限らずどのような値とされてもよい。
 ステップS52において、決定部43はXaおよびθaの値を設定する。具体的には、決定部43はXaとして、0.1単位でXv/Fvに一番近い値をセットし、θaとして、0.1単位で角度θpitchに一番近い値をセットする。
 ここで、Xvは図11のステップS16またはステップS23の処理で定められた、書き込み領域のXv座標の値であり、Fvおよびθpitchは、図11のステップS15の処理で入力された角度θpitchおよび焦点距離Fvの値である。
 ステップS53において、決定部43は、書き込み領域の終了位置の下限を示すパラメータminYv1=Yv0、上限を示すパラメータmaxYv1=Hv/2とし、そして、終了位置のYv座標をYv1=(int)((minYv1+maxYv1)/2)とする。なお、ここで定められた終了位置のYv座標は、一時的に定められた仮の値である。ここで、(int)(A)は、Aの小数部分を切り捨てて、整数部分を出力する関数である。
 ステップS54において、誤差算出部62は、上述した式(40)乃至式(45)の計算を行い、近似関数によりSx,Syを算出したときの近似誤差の最大値を求め、求められた値をtmpとする。
 すなわち、誤差算出部62は、式(40)乃至式(42)の計算を行なうことで、式(24)の近似関数によりSxを算出したときの近似誤差を算出する。このとき、誤差算出部62は、極値データとして保持されているyの値yus(xa,θa)(i)の極値を用いて、式(40)の計算を行なう。なお、yの値yus(xa,θa)(i)におけるXaおよびθaの値として、ステップS52の処理でセットされた値が用いられる。また、極値データとして、yの値yus(xa,θa)(i)のみが保持されている場合には、その値yus(xa,θa)(i)に基づいて、n次微分関数の値(極値)が算出される。
 さらに、誤差算出部62は、式(43)乃至式(45)の計算を行なうことで、式(26)の近似関数によりSyを算出したときの近似誤差を算出する。このとき、誤差算出部62は、極値データとして保持されているyの値yvs(xa,θa)(i)の極値を用いて、式(43)の計算を行なう。なお、yの値yvs(xa,θa)(i)におけるXaおよびθaの値として、ステップS52の処理でセットされた値が用いられる。
 誤差算出部62は、このようにしてSxの近似誤差とSyの近似誤差を求めると、それらの近似誤差のうちの大きい方を、誤差の最大値tmpとする。
 この誤差の最大値tmpが、誤差の許容量である閾値th以下であれば、書き込み領域の開始位置から、現時点で仮に定められている書き込み領域の終了位置までの領域に対して、近似誤差が許容範囲内ということになる。すなわち、同じ近似関数を用いて書き込み領域の各位置に対応するパノラマ画像の位置を求めても、出力画像の品質劣化が目立たないことになる。
 ステップS55において、決定部43は、誤差の最大値tmpが閾値thよりも大きいか否かを判定する。
 ステップS55において、最大値tmpが閾値thよりも大きいと判定された場合、つまり近似誤差が許容量を超える場合、ステップS56において、決定部43は、終了位置の上限を示すパラメータをmaxYv1=Yv1とする。そして、決定部43は、tmpYv1=(int)((minYv1+maxYv1)/2)とする。
 ここで、(int)(A)は、Aの小数部分を切り捨てて、整数部分を出力する関数である。また、Yvは現時点における書き込み領域の開始位置のYv座標であり、Yvは現時点における書き込み領域の仮に定められている終了位置のYv座標である。
 したがって、現時点の終了位置の下限と終了位置の上限の中間位置のYv座標がtmpYv1とされる。tmpYv1が求められると、その後、処理はステップS58に進む。
 これに対して、ステップS55において、最大値tmpが閾値thよりも大きくないと判定された場合、つまり近似誤差が許容量以下である場合、ステップS57において、決定部43は、終了位置の下限を示すパラメータをminYv1=Yv1とする。そして、決定部43は、tmpYv1=(int)((minYv1+maxYv1)/2)とする。
 ここで、(int)(A)は、Aの整数部分を出力する関数である。また、Yvは現時点における書き込み領域の仮に定められている終了位置のYv座標である。したがって、現時点の終了位置の下限と終了位置の上限の中間位置のYv座標がtmpYv1とされる。tmpYv1が求められると、その後、処理はステップS58に進む。
 ステップS56またはステップS57においてtmpYv1が求められると、ステップS58において、決定部43は、tmpYv1=minYv1またはtmpYv1=maxYv1であるか否かを判定する。すなわち、ステップS55乃至ステップS57の処理で行なわれる二分法の収束により、終了位置のYv座標であるYvが確定したか否かが判定される。
 ステップS58において、tmpYv1=minYv1およびtmpYv1=maxYv1の何れも成立しないと判定された場合、ステップS59において、決定部43は、Yv1=tmpYv1とする。すなわち、ステップS56またはステップS57で算出されたtmpYv1の値が、書き込み領域の終了位置の新たな仮のYv座標とされる。
 Yv1=tmpYv1とされると、その後、処理はステップS54に戻り、上述した処理が繰り返される。
 一方、ステップS58において、tmpYv1=minYv1またはtmpYv1=maxYv1であると判定された場合、決定部43は、現時点において仮に定められているYvの値を、書き込み領域の終了位置のYv座標として決定する。
 そして、決定部43は、書き込み領域の開始位置および終了位置を示す情報を書き込み部44に供給し、終了位置算出処理は終了する。終了位置算出処理が終了すると、その後、処理は図11のステップS19に進む。なお、このとき、決定部43から書き込み部44には、必要に応じて、ユーザにより入力された角度θyaw、角度θpitch、および焦点距離Fvも供給される。
 以上のようにして画像処理装置31は、極値データを用いて近似関数による位置(Sx,Sy)の算出の誤差を求め、その誤差に基づいて書き込み領域の終了位置を決定する。
 画像処理装置31によれば、予め極値データを生成しておくことで、極値データを用いて上述した式(40)乃至式(45)の計算を行うという簡単な演算で、近似誤差が許容範囲内となる書き込み領域を迅速に定めることができる。
[書き込み処理の説明]
 次に、図13のフローチャートを参照して、図11のステップS19の処理に対応する書き込み処理について説明する。
 ステップS81において、書き込み部44は、決定部43から供給された書き込み領域の開始位置および終了位置を示す情報に基づいて、キャンバス領域上の書き込み領域のうち、これから書き込みを行なう書き込み対象の位置のYv座標をYvとする。
 すなわち、キャンバス領域上の書き込み対象の位置(Xv,Yv)のYv座標が、書き込み領域の開始位置のYv座標であるYvとされる。なお、書き込み対象の位置(Xv,Yv)のXv座標は、図11のステップS16またはステップS23の処理で定められたXv座標とされる。したがって、この場合、書き込み領域の開始位置が、書き込み対象の位置(Xv,Yv)となる。
 ステップS82において、対応位置算出部71は、上述した式(24)および式(26)の計算を行なうことで、書き込み対象の位置(Xv,Yv)に対応するパノラマ画像上の位置(Sx,Sy)を算出する。このとき、対応位置算出部71は、決定部43から供給された開始位置と終了位置の情報や、角度θyaw、角度θpitch、および焦点距離Fvを用いて、式(24)および式(26)の計算を行なう。
ステップS83において、書き込み部44は、ステップS82の処理で算出された位置(Sx,Sy)にあるパノラマ画像の画素の画素値を、書き込み対象の位置(Xv,Yv)の画素の画素値とし、キャンバス領域上の書き込み対象の位置に書き込む。
 ステップS84において、書き込み部44は、書き込み対象の位置(Xv,Yv)のYv座標が、書き込み領域の終了位置のYv座標であるYv未満であるか否かを判定する。すなわち、書き込み領域内の各画素に対して、パノラマ画像の画素の書き込みが行なわれたか否かが判定される。
 ステップS84において、書き込み対象の位置のYv座標が、終了位置のYv座標であるYv未満であると判定された場合、ステップS85において、書き込み部44は、書き込み対象の位置のYv座標を、Yv=Yv+1とする。
 すなわち、書き込み部44は、現時点における書き込み対象の位置からみて、キャンバス領域上の+Yv方向に隣接する位置を、新たな書き込み対象の位置とする。したがって、現時点における書き込み対象の位置が(Xv,Yv)である場合、新たな書き込み対象の位置は(Xv,Yv+1)となる。
 新たな書き込み対象の位置が定められると、その後、処理はステップS82に戻り、上述した処理が繰り返される。
 これに対して、ステップS84において、書き込み対象の位置のYv座標が、終了位置のYv座標であるYv以上であると判定された場合、書き込み領域内の全ての位置にパノラマ画像の画素が書き込まれたので、書き込み処理は終了する。書き込み処理が終了すると、その後、処理は図11のステップS20へと進む。
 以上のようにして、画像処理装置31は、近似関数を用いて書き込み対象の位置に書き込むべき画素があるパノラマ画像上の位置を算出し、書き込み領域への書き込みを行なう。このように、近似関数を用いて書き込み対象の位置に対応するパノラマ画像上の位置を求めることで、簡単な計算により迅速に書き込みを行なうことができる。
 例えば、書き込み対象の位置に対応するパノラマ画像上の位置を、上述した式(3)の計算により求める場合、三角関数の演算や割り算など複雑な計算が必要となるため、演算量が膨大となり、処理速度が低下してしまう。
 これに対して、画像処理装置31では、式(24)や式(26)のn次多項式により、書き込み対象の位置に対応するパノラマ画像上の位置を求めることができるので、処理速度の向上を図ることができる。
〈第2の実施の形態〉
[画像処理装置の構成例]
 次に、パノラマ画像が円筒面に投影された画像である場合における、実施の形態について説明する。そのような場合、画像処理装置は、例えば図14に示すように構成される。
 図14の画像処理装置101は、取得部111、入力部42、決定部112、書き込み部113、および表示部45から構成される。なお、図14において、図10における場合と対応する部分には同一の符号を付してあり、その説明は省略する。
 取得部111は、パノラマ画像を取得して書き込み部113に供給する。ここで、取得部111により取得されるパノラマ画像は、円筒面に投影された画像である。
決定部112は、パノラマ画像の一部の領域を切り出して表示部45に表示させる場合に、1つの近似関数が用いられてパノラマ画像の書き込みが行なわれる、書き込み部113に確保されたキャンバス領域上の領域を決定する。決定部112は、極値データ生成部131、および誤差算出部132を備えている。
 極値データ生成部131は、パノラマ画像上の位置(Cx,Cy)の算出の近似誤差の評価に必要なn次微分関数が極値をとるときのyの値と、そのときの極値とを極値データとして生成する。すなわち、極値データとして、n次微分関数が極値をとるときのyの値yuc(x,θ)(i)および値yvc(x,θ)(i)が算出される。誤差算出部132は、極値データに基づいて、パノラマ画像上の位置(Cx,Cy)の算出の近似誤差を算出する。
 書き込み部113は、必要に応じて決定部112と情報の授受を行ないながら、取得部111からのパノラマ画像を、確保したキャンバス領域に書き込むことでパノラマ画像における、ユーザにより指定された視線方向および焦点距離の領域の画像を生成する。
 また、書き込み部113は、対応位置算出部141を備えており、対応位置算出部141は、キャンバス領域の各位置に書き込むパノラマ画像上の画素の位置を算出する。
[画像出力処理の説明]
 ところで、画像処理装置101にパノラマ画像が供給され、ユーザにより出力画像の表示が指示されると、画像処理装置101は、供給されたパノラマ画像から出力画像を生成して出力する画像出力処理を開始する。以下、図15のフローチャートを参照して、画像処理装置101による画像出力処理について説明する。
 ステップS131において、取得部111はパノラマ画像を取得し、書き込み部113に供給する。
 ステップS132において、極値データ生成部131は、関数Uc(x,y,θ)をyによりn回偏微分して得られるn次微分関数が極値をとるときのyの値yuc(x,θ)(i)を算出し、得られた各値yuc(x,θ)(i)と、値yuc(x,θ)(i)における極値とを極値データとして保持する。
 具体的には、極値データ生成部131は図8に示した擬似コードを実行し、式(36)または式(37)を満たすときのyの値を、極値となるyの値yuc(x,θ)(i)とする。
 ステップS133において、極値データ生成部131は、関数Vc(x,y,θ)をyによりn回偏微分して得られるn次微分関数が極値をとるときのyの値yvc(x,θ)(i)を算出し、得られた各値yvc(x,θ)(i)と、値yvc(x,θ)(i)における極値とを極値データとして保持する。
 具体的には、極値データ生成部131は図9に示した擬似コードを実行し、式(38)または式(39)を満たすときのyの値を、極値となるyの値yvc(x,θ)(i)とする。
 このようにして求められた極値データとしてのyの値yuc(x,θ)(i)および値yvc(x,θ)(i)と、それらのyの値における極値とは、キャンバス領域(スクリーン)上の位置(Xv,Yv)に書き込まれるパノラマ画像上の位置(Cx,Cy)を近似により求めるときの近似誤差の算出に用いられる。なお、極値データは、例えばルックアップテーブルなどの形式で保持されるようにしてもよい。
 極値データが求められると、その後、ステップS134乃至ステップS137の処理が行なわれるが、これらの処理は図11のステップS14乃至ステップS17の処理と同様であるので、その説明は省略する。
 ステップS138において、画像処理装置101は、終了位置算出処理を行なって、書き込み領域の終了位置のYv座標であるYvの値を算出する。
 なお、この終了位置算出処理は後述するが、終了位置算出処理では、ステップS132およびステップS133の処理で求められた極値データが用いられて、書き込み領域の終了位置が定められる。
 ステップS139において、画像処理装置101は、書き込み処理を行って、キャンバス領域上の書き込み領域にパノラマ画像の画素の画素値を書き込む。なお、書き込み処理の詳細は後述するが、書き込み処理では、上述した式(28)および式(30)の近似関数が用いられて、書き込み領域の各位置(Xv,Yv)に対応するパノラマ画像上の位置(Cx,Cy)が算出される。
 書き込み処理が行なわれると、その後、ステップS140乃至ステップS144の処理が行なわれるが、これらの処理は図11のステップS20乃至ステップS24の処理と同様であるので、その説明は省略する。また、ユーザにより、出力画像の表示終了が指示されると、画像出力処理は終了する。
 以上のようにして画像処理装置101は、ユーザにより視線方向および焦点距離が指定されると出力画像を生成し、出力する。このとき、画像処理装置101は、品質の劣化が生じないように、近似誤差の評価結果に基づいて書き込み領域の終了位置を定め、書き込み領域へのパノラマ画像の画素の書き込みを行なっていく。
 これにより、パノラマ画像における所望の方向の領域を簡単かつ迅速に切り出して出力画像とすることができるとともに、高品質な出力画像を提示することができる。
[終了位置算出処理の説明]
 次に、図16のフローチャートを参照して、図15のステップS138の処理に対応する終了位置算出処理について説明する。
 なお、ステップS71乃至ステップS73の処理は、図12のステップS51乃至ステップS53の処理と同様であるので、その説明は省略する。
 ステップS74において、誤差算出部132は、上述した式(46)乃至式(51)の計算を行い、近似関数によりCx,Cyを算出したときの近似誤差の最大値を求め、求められた値をtmpとする。
 すなわち、誤差算出部132は、式(46)乃至式(48)の計算を行なうことで、式(28)の近似関数によりCxを算出したときの近似誤差を算出する。このとき、誤差算出部132は、極値データとして保持されているyの値yuc(xa,θa)(i)の極値を用いて、式(46)の計算を行なう。なお、yの値yuc(xa,θa)(i)におけるXaおよびθaの値として、ステップS72の処理でセットされた値が用いられる。
 また、誤差算出部132は、式(49)乃至式(51)の計算を行なうことで、式(30)の近似関数によりCyを算出したときの近似誤差を算出する。このとき、誤差算出部132は、極値データとして保持されているyの値yvc(xa,θa)(i)の極値を用いて、式(49)の計算を行なう。なお、yの値yvc(xa,θa)(i)におけるXaおよびθaの値として、ステップS72の処理でセットされた値が用いられる。
 誤差算出部132は、このようにしてCxの近似誤差とCyの近似誤差を求めると、それらの近似誤差のうちの大きい方を、誤差の最大値tmpとする。
 誤差の最大値tmpが求められると、その後、ステップS75乃至ステップS79の処理が行なわれて終了位置算出処理は終了するが、これらの処理は図12のステップS55乃至ステップS59の処理と同様であるので、その説明は省略する。
 終了位置算出処理が終了すると、その後、処理は図15のステップS139に進む。なお、このとき、決定部112から書き込み部113には、書き込み領域の開始位置および終了位置の情報とともに、必要に応じてユーザにより入力された角度θyaw、角度θpitch、および焦点距離Fvも供給される。
 以上のようにして画像処理装置101は、極値データを用いて近似関数による位置(Cx,Cy)の算出の誤差を求め、その誤差に基づいて書き込み領域の終了位置を決定する。
 画像処理装置101によれば、予め極値データを生成しておくことで、極値データを用いて上述した式(46)乃至式(51)の計算を行うという簡単な演算で、近似誤差が許容範囲内となる書き込み領域を迅速に定めることができる。
[書き込み処理の説明]
 次に、図17のフローチャートを参照して、図15のステップS139の処理に対応する書き込み処理について説明する。
 なお、ステップS101の処理は、図13のステップS81の処理と同様であるので、その説明は省略する。
 ステップS102において、対応位置算出部141は、上述した式(28)および式(30)の計算を行なうことで、書き込み対象の位置(Xv,Yv)に対応するパノラマ画像上の位置(Cx,Cy)を算出する。このとき、対応位置算出部141は、決定部112から供給された開始位置と終了位置の情報や、角度θyaw、角度θpitch、および焦点距離Fvを用いて、式(28)および式(30)の計算を行なう。
 ステップS103において、書き込み部113は、ステップS102の処理で算出された位置(Cx,Cy)にあるパノラマ画像の画素の画素値を、書き込み対象の位置(Xv,Yv)の画素の画素値とし、キャンバス領域上の書き込み対象の位置に書き込む。
 キャンバス領域への書き込みが行なわれると、その後、ステップS104およびステップS105の処理が行なわれて、書き込み処理は終了するが、これらの処理は図13のステップS84およびステップS85の処理と同様であるので、その説明は省略する。書き込み処理が終了すると、その後、処理は図15のステップS140に進む。
 以上のようにして、画像処理装置101は、近似関数を用いて書き込み対象の位置に書き込むべき画素があるパノラマ画像上の位置を算出し、書き込み領域への書き込みを行なう。このように、近似関数を用いて書き込み対象の位置に対応するパノラマ画像上の位置を求めることで、簡単な計算により迅速に書き込みを行なうことができる。
 ところで、上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウェアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
 図18は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
 コンピュータにおいて、CPU(Central Processing Unit)201,ROM(Read Only Memory)202,RAM(Random Access Memory)203は、バス204により相互に接続されている。
 バス204には、さらに、入出力インターフェース205が接続されている。入出力インターフェース205には、入力部206、出力部207、記録部208、通信部209、及びドライブ210が接続されている。
 入力部206は、キーボード、マウス、マイクロホンなどよりなる。出力部207は、ディスプレイ、スピーカなどよりなる。記録部208は、ハードディスクや不揮発性のメモリなどよりなる。通信部209は、ネットワークインターフェースなどよりなる。ドライブ210は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア211を駆動する。
 以上のように構成されるコンピュータでは、CPU201が、例えば、記録部208に記録されているプログラムを、入出力インターフェース205及びバス204を介して、RAM203にロードして実行することにより、上述した一連の処理が行われる。
 コンピュータ(CPU201)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア211に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
 コンピュータでは、プログラムは、リムーバブルメディア211をドライブ210に装着することにより、入出力インターフェース205を介して、記録部208にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部209で受信し、記録部208にインストールすることができる。その他、プログラムは、ROM202や記録部208に、あらかじめインストールしておくことができる。
 なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
 また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
 例えば、本技術は、1つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
 また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
 さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
 さらに、本技術は、以下の構成とすることも可能である。
[1]
 入力画像と所定の位置関係を有する出力画像を生成する画像処理装置であって、
 前記出力画像上の位置に対応する前記入力画像上の位置を近似関数により求めたときの誤差の算出に必要な関数であって、前記位置関係を規定する変数および前記出力画像上の位置を変数として有する関数に基づいて、前記関数の極値に関するデータを生成する極値データ生成部と、
 前記出力画像上の第1の位置から第2の位置までの対象領域について、前記データに基づいて、前記対象領域内の位置に対応する前記入力画像の位置を前記近似関数により求めたときの前記誤差を算出する誤差算出部と、
 前記誤差が所定の閾値以下となる前記対象領域を決定する決定部と、
 決定された前記対象領域内の各位置について、前記近似関数を用いて前記入力画像の対応する位置を求め、前記対応する位置の画素の画素値を前記対象領域の位置の画素の画素値とすることで、前記出力画像を生成する画像生成部と
 を備える画像処理装置。
[2]
 前記近似関数は、前記位置関係を示す関数を前記第1の位置の周りで多項式展開した多項式近似関数である
 [1]に記載の画像処理装置。
[3]
 前記近似関数は、(n-1)次多項式近似関数であり、前記誤差の算出に必要な前記関数は、前記位置関係を示す関数をn次微分することで得られる関数である
 [2]に記載の画像処理装置。
[4]
 前記位置関係を規定する変数は、所定の基準位置からみた前記出力画像の方向、および前記基準位置から前記出力画像までの距離である
 [1]乃至[3]の何れかに記載の画像処理装置。
[5]
 前記出力画像上の所定の位置に対応する前記入力画像上の位置は、前記所定の位置および前記基準位置を通る直線と、前記入力画像との交点の位置とされる
 [4]に記載の画像処理装置。
[6]
 前記入力画像は、球面に投影された画像、または円筒面に投影された画像である
 [1]乃至[5]の何れかに記載の画像処理装置。
 31 画像処理装置, 43 決定部, 44 書き込み部, 61 極値データ生成部, 62 誤差算出部, 71 対応位置算出部, 101 画像処理装置, 112 決定部, 113 書き込み部, 131 極値データ生成部, 132 誤差算出部, 141 対応位置算出部

Claims (8)

  1.  入力画像と所定の位置関係を有する出力画像を生成する画像処理装置であって、
     前記出力画像上の位置に対応する前記入力画像上の位置を近似関数により求めたときの誤差の算出に必要な関数であって、前記位置関係を規定する変数および前記出力画像上の位置を変数として有する関数に基づいて、前記関数の極値に関するデータを生成する極値データ生成部と、
     前記出力画像上の第1の位置から第2の位置までの対象領域について、前記データに基づいて、前記対象領域内の位置に対応する前記入力画像の位置を前記近似関数により求めたときの前記誤差を算出する誤差算出部と、
     前記誤差が所定の閾値以下となる前記対象領域を決定する決定部と、
     決定された前記対象領域内の各位置について、前記近似関数を用いて前記入力画像の対応する位置を求め、前記対応する位置の画素の画素値を前記対象領域の位置の画素の画素値とすることで、前記出力画像を生成する画像生成部と
     を備える画像処理装置。
  2.  前記近似関数は、前記位置関係を示す関数を前記第1の位置の周りで多項式展開した多項式近似関数である
     請求項1に記載の画像処理装置。
  3.  前記近似関数は、(n-1)次多項式近似関数であり、前記誤差の算出に必要な前記関数は、前記位置関係を示す関数をn次微分することで得られる関数である
     請求項2に記載の画像処理装置。
  4.  前記位置関係を規定する変数は、所定の基準位置からみた前記出力画像の方向、および前記基準位置から前記出力画像までの距離である
     請求項3に記載の画像処理装置。
  5.  前記出力画像上の所定の位置に対応する前記入力画像上の位置は、前記所定の位置および前記基準位置を通る直線と、前記入力画像との交点の位置とされる
     請求項4に記載の画像処理装置。
  6.  前記入力画像は、球面に投影された画像、または円筒面に投影された画像である
     請求項5に記載の画像処理装置。
  7.  入力画像と所定の位置関係を有する出力画像を生成する画像処理方法であって、
     前記出力画像上の位置に対応する前記入力画像上の位置を近似関数により求めたときの誤差の算出に必要な関数であって、前記位置関係を規定する変数および前記出力画像上の位置を変数として有する関数に基づいて、前記関数の極値に関するデータを生成し、
     前記出力画像上の第1の位置から第2の位置までの対象領域について、前記データに基づいて、前記対象領域内の位置に対応する前記入力画像の位置を前記近似関数により求めたときの前記誤差を算出し、
     前記誤差が所定の閾値以下となる前記対象領域を決定し、
     決定された前記対象領域内の各位置について、前記近似関数を用いて前記入力画像の対応する位置を求め、前記対応する位置の画素の画素値を前記対象領域の位置の画素の画素値とすることで、前記出力画像を生成する
     ステップを含む画像処理方法。
  8.  入力画像と所定の位置関係を有する出力画像を生成する画像処理用のプログラムであって、
     前記出力画像上の位置に対応する前記入力画像上の位置を近似関数により求めたときの誤差の算出に必要な関数であって、前記位置関係を規定する変数および前記出力画像上の位置を変数として有する関数に基づいて、前記関数の極値に関するデータを生成し、
     前記出力画像上の第1の位置から第2の位置までの対象領域について、前記データに基づいて、前記対象領域内の位置に対応する前記入力画像の位置を前記近似関数により求めたときの前記誤差を算出し、
     前記誤差が所定の閾値以下となる前記対象領域を決定し、
     決定された前記対象領域内の各位置について、前記近似関数を用いて前記入力画像の対応する位置を求め、前記対応する位置の画素の画素値を前記対象領域の位置の画素の画素値とすることで、前記出力画像を生成する
     ステップを含む処理をコンピュータに実行させるプログラム。
PCT/JP2012/078425 2011-11-09 2012-11-02 画像処理装置および方法、並びにプログラム WO2013069555A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US14/354,959 US20140313284A1 (en) 2011-11-09 2012-11-02 Image processing apparatus, method thereof, and program
CN201280053874.2A CN103918003A (zh) 2011-11-09 2012-11-02 图像处理装置、方法和程序

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011245295A JP2013101525A (ja) 2011-11-09 2011-11-09 画像処理装置および方法、並びにプログラム
JP2011-245295 2011-11-09

Publications (1)

Publication Number Publication Date
WO2013069555A1 true WO2013069555A1 (ja) 2013-05-16

Family

ID=48289931

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/078425 WO2013069555A1 (ja) 2011-11-09 2012-11-02 画像処理装置および方法、並びにプログラム

Country Status (4)

Country Link
US (1) US20140313284A1 (ja)
JP (1) JP2013101525A (ja)
CN (1) CN103918003A (ja)
WO (1) WO2013069555A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111954054A (zh) * 2020-06-05 2020-11-17 筑觉绘(上海)科技有限公司 图像处理方法、系统、存储介质及计算机设备
US10845942B2 (en) 2016-08-31 2020-11-24 Sony Corporation Information processing device and information processing method

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9300882B2 (en) 2014-02-27 2016-03-29 Sony Corporation Device and method for panoramic image processing
WO2017202899A1 (en) * 2016-05-25 2017-11-30 Koninklijke Kpn N.V. Spatially tiled omnidirectional video streaming
CN107886468A (zh) * 2016-09-29 2018-04-06 阿里巴巴集团控股有限公司 全景视频的映射方法、重建、处理方法及对应装置和设备
KR20180051288A (ko) * 2016-11-08 2018-05-16 삼성전자주식회사 디스플레이 장치 및 그 제어 방법
WO2018134946A1 (ja) * 2017-01-19 2018-07-26 株式会社ソニー・インタラクティブエンタテインメント 画像生成装置、及び画像表示制御装置
US10715783B1 (en) * 2019-03-01 2020-07-14 Adobe Inc. Stereo-aware panorama conversion for immersive media

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001052152A (ja) * 1999-08-17 2001-02-23 Canon Inc 画像合成方法、画像合成装置及び記憶媒体
JP2010092360A (ja) * 2008-10-09 2010-04-22 Canon Inc 画像処理システム、画像処理装置、収差補正方法及びプログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6356297B1 (en) * 1998-01-15 2002-03-12 International Business Machines Corporation Method and apparatus for displaying panoramas with streaming video
US7006707B2 (en) * 2001-05-03 2006-02-28 Adobe Systems Incorporated Projecting images onto a surface

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001052152A (ja) * 1999-08-17 2001-02-23 Canon Inc 画像合成方法、画像合成装置及び記憶媒体
JP2010092360A (ja) * 2008-10-09 2010-04-22 Canon Inc 画像処理システム、画像処理装置、収差補正方法及びプログラム

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
RYO OZAKI ET AL.: "A Fast Method for Coordinate Calculation in Projective Transformations", THE TRANSACTIONS OF THE INSTITUTE OF ELECTRONICS, INFORMATION AND COMMUNICATION ENGINEERS, vol. J88-D-II, no. 1, 1 January 2005 (2005-01-01), pages 1 - 7 *
RYO OZAKI ET AL.: "Shaei Henkan ni Okeru Zahyo Keisan no Kosokuka Shuho -Gosa no Hyoka", THE INSTITUTE OF ELECTRONICS, INFORMATION AND COMMUNICATION ENGINEERS 2004 NEN SOGO TAIKAI KOEN RONBUNSHU, JOHO SYSTEM 2, 8 March 2004 (2004-03-08), pages 139 *
YOSHINORI YAMADA ET AL.: "A study of high-speed projective transformation method", IEICE TECHNICAL REPORT, vol. 106, no. 549, 2 March 2007 (2007-03-02), pages 19 - 24 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10845942B2 (en) 2016-08-31 2020-11-24 Sony Corporation Information processing device and information processing method
CN111954054A (zh) * 2020-06-05 2020-11-17 筑觉绘(上海)科技有限公司 图像处理方法、系统、存储介质及计算机设备

Also Published As

Publication number Publication date
JP2013101525A (ja) 2013-05-23
US20140313284A1 (en) 2014-10-23
CN103918003A (zh) 2014-07-09

Similar Documents

Publication Publication Date Title
WO2013069555A1 (ja) 画像処理装置および方法、並びにプログラム
EP2870585B1 (en) A method and system for correcting a distorted image
JP4629131B2 (ja) 画像変換装置
JP2022528659A (ja) プロジェクタの台形補正方法、装置、システム及び読み取り可能な記憶媒体
US11403739B2 (en) Methods and apparatus for retargeting and prioritized interpolation of lens profiles
EP3438919B1 (en) Image displaying method and head-mounted display apparatus
CN107665483B (zh) 免定标便捷的单目镜头鱼眼图像畸变矫正方法
JP6253280B2 (ja) 撮像装置およびその制御方法
EP1453001A1 (en) IMAGE PROCESSING APPARATUS, IMAGE PROCESSING METHOD, STORAGE MEDIUM, AND COMPUTER PROGRAM
CN114125411B (zh) 投影设备校正方法、装置、存储介质以及投影设备
CN111445537B (zh) 一种摄像机的标定方法及系统
CN114727081A (zh) 投影仪投影校正方法、装置及投影仪
CN103247020A (zh) 一种基于径向特征的鱼眼图像展开方法
CN109685721B (zh) 全景画面拼接方法、装置、终端及对应的存储介质
CN111275621A (zh) 一种行车环视系统中全景图生成方法、系统及存储介质
CN105096296A (zh) 立体相机成像的校正装置、方法及电子设备
US9092840B2 (en) Image processing apparatus, control method of the same and non-transitory computer-readable storage medium
CN113034362A (zh) 一种高速公路隧道监控全景影像拼接方法
WO2011161746A1 (ja) 画像処理方法、プログラム、画像処理装置及び撮像装置
CN115147268A (zh) 实时取景方法、全景相机及计算机可读存储介质
JP5344647B2 (ja) 画像処理方法、画像処理装置および画像処理プログラム
JP6708483B2 (ja) 画像処理装置、画像処理方法、およびプログラム
CN114157848B (zh) 投影设备校正方法、装置、存储介质以及投影设备
WO2011158344A1 (ja) 画像処理方法、プログラム、画像処理装置及び撮像装置
KR102434428B1 (ko) 합성 영상 생성 방법, 합성 영상 생성 장치 및 상기 방법을 실행시키기 위하여 기록매체에 저장된 컴퓨터 프로그램

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12848076

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 14354959

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12848076

Country of ref document: EP

Kind code of ref document: A1