The present invention relates to image processing technology for seaming together multiple data representing an image.
In recent years, it has become common practice to capture photos using a digital still camera (DSC), and to then store the graphics data representing the photos on a computer. A process termed panorama synthesis, in which data for multiple images is synthesized to produce graphics data representing a single seamless image is sometimes carried out as well.
However, images generated by a digital still camera have some distortion, particularly in peripheral edge portions. This distortion can create the problem of degraded image quality in image areas that are seamed together when synthesizing multiple images. One cause of this distortion is that light entering through the optical system of the digital camera is projected onto an image pickup device having a flat photoreceptor surface.
With the foregoing in view, it is an object of the present invention to provide technology that overcomes the aforementioned drawbacks of the conventional art, by controlling image degradation produced in the process of synthesizing data for multiple images generated using a flat image pickup device.
In order to attain the above and the other objects of the present invention, there is provided the first configuration of image processing apparatus for generating graphics data representing a single seamless planar image synthesized from a multiple sets of graphics data contained in a plurality of graphics files, in response to the plurality of graphics files each of which contains the graphics data composed of a multiplicity of planar pixels arrayed in a plane for representing a planar image. The image processing apparatus comprising a synthesis area establisher configured to establish a spheroidal projection plane centered on a predetermined point, as an area for synthesis of the multiple sets of graphics data; a spheroidal image generator configured to generate a plurality of spheroidal images, by projecting each of planar images represented by each of the multiple sets of graphics data onto the projection plane; a feature point extractor configured to extract a feature point which is an area having a predetermined characteristic, from each of the plurality of spheroidal images; a correspondence relationship determiner configured to determine a correspondence relationship of the extracted feature points, between the plurality of spheroidal images; a spheroidal image synthesizer configured to generate seamless spheroidal graphics data representing a single seamless spheroidal image, by synthesizing a plurality of graphics data each of which representing each of the spheroidal images, with reference to the determined correspondence relationship; and a planar image generator configured to generate the graphics data representing the single seamless planar image, from the seamless spheroidal image graphics data.
According to this first configuration of the invention, a spheroidal projection plane centered on a predetermined point is established as an area for synthesizing the multiple graphics data, and planar images representing data for each of the multiplicity of images are projected onto the established projection plane in order to generate a multiplicity of spheroidal images, which spheroidal images are then synthesized. According to this aspect, since images are synthesized on a spheroidal projection plane, it is possible to control degradation in image quality produced in the process of synthesizing data for multiple images generated using a flat image pickup device.
In the image processing apparatus of the present invention, the plurality of graphics files may further include image attribute information which is attribute information of the graphics data. The image processing apparatus may further comprise a focal distance determiner configured to determine a focal distance of an optical system used to generate the multiple sets of graphics data for each of the multiple set of graphics data, in response to the image attribute information; and the spheroidal image generator generates the plurality of spheroidal images by projecting each planar image represented by each of the multiple sets of graphics data onto the projection plane, the each planar images being placed at a location away from the predetermined point to the projection plane side, by the focal distance corresponding to each of the multiple sets of graphics data.
By so doing, it is possible to carry out panorama synthesis even where the data for a multiplicity of images has been created at different magnification by means of using the zoom function during shooting, for example.
In the image processing apparatus of the present invention, the image attribute information may include lens focal distance representing focal distance of a shooting lens; focal plane resolution unit specifying an unit of resolution in a focal plane of the optical system; focal plane height resolution representing a pixel count in a pixel height direction per the focal plane resolution unit; and focal plane width resolution representing a pixel count in a pixel width direction per the focal plane resolution unit; the focal distance determiner determines the lens focal distance to be the focal distance; and the spheroidal image generator determines a pixel size in a width direction by means of dividing the focal plane resolution unit by focal plane width resolution, and also determines a pixel size in a height direction by means of dividing the focal plane resolution unit by the focal plane height resolution.
In the image processing apparatus of the present invention, the image attribute information may include 35 mm-equivalent lens focal distance which is a value of focal distance converted to a 35 mm film camera basis. The focal distance determiner may determine the 35 mm-equivalent lens focal distance to be the focal distance. The spheroidal image generator may determine 35 mm film size as a size of the planar image.
In the preferred image processing apparatus of the present invention, the image attribute information includes focal plane resolution unit specifying an unit of resolution in a focal plane of the optical system; focal plane height resolution representing a pixel count in a pixel height direction per the focal plane resolution unit; and focal plane width resolution representing a pixel count in a pixel width direction per the focal plane resolution unit. The spheroidal image generator comprises: a spheroidal pixel establisher configured to establish spheroidal pixels on the spheroidal projection plane, the spheroidal pixel being allocated in a height direction by an angle divided by a largest one of the determined focal distances and the focal plane height resolution, and being allocated in a width direction by an angle divided by the largest determined focal distance and the focal plane width resolution; and a spheroidal pixel value determiner configured to determine each pixel value for each of the spheroidal pixels, according to a pixel value of a planar pixel projected onto each of the spheroidal pixels.
In this way, by establishing spheroidal pixels on the basis of the largest one among the determined focal point distances, it becomes possible to carry out panorama synthesis without reducing the amount of information of planar images having the smallest pixels, and without including an excessive amount of information in the spheroidal images generated from the planar images.
The second configuration of the invention is an image processing apparatus for generating graphics data representing a single seamless planar image synthesized from a multiple sets of graphics data contained in a plurality of graphics files, in response to the plurality of graphics files each of which contains the graphics data composed of a multiplicity of planar pixels arrayed in a plane for representing a planar image. The image processing apparatus comprises: a synthesis area establisher configured to establish a cylindrical projection plane centered on a predetermined axis, as an area for synthesis of the multiple sets of graphics data; a cylindrical image generator configured to generate a plurality of cylindrical images, by projecting each of planar images represented by each of the multiple sets of graphics data onto the projection plane; a feature point extractor configured to extract a feature point which is an area having a predetermined characteristic, from each of the plurality of cylindrical images; a correspondence relationship determiner configured to determine a correspondence relationship of the extracted feature points, between the plurality of cylindrical images; a cylindrical image synthesizer configured to generate seamless cylindrical graphics data representing a single seamless cylindrical image, by synthesizing a plurality of graphics data each of which representing each of the cylindrical images, with reference to the determined correspondence relationship; and a planar image generator configured to generate the graphics data representing the single seamless planar image, from the seamless cylindrical image graphics data.
In the preferred image processing apparatus of the present invention, the cylindrical image generator establishes the axis parallel to the height direction established in the graphics data.
By so doing, it is possible to reduce image distortion of in the lateral direction of images during the panorama synthesis process, which typically involves seaming together in the lateral direction.
The technique of the present invention is actualized by a variety of applications, which include image processing methods, computer programs that attain the functions of such apparatuses and methods, recording media in which such computer programs are recorded, and data signals that include such computer programs and are embodied in carrier waves.
FIGS. 7(a) and 7(b) are illustrations depicting the positional relationship between planar RGD data and a cylindrical coordinate system.
FIGS. 9(a) and 9(b) are illustrations depicting the positional relationship between planar RGB data and the projection plane CYL, viewed from the axis Caxis direction.
FIGS. 12(a), 12(b), and 12(c) are illustrations depicting generation of two sets of cylindrical graphics data having the same focal distance from the scene.
FIGS. 13(a), 13(b), and 13(c) are illustrations depicting feature points extracted from each set of cylindrical graphics data.
FIGS. 15(a) and 15(b) are illustrations giving a description of the synthesis process.
FIGS. 16(a), 16(b), and 16(c) are illustrations depicting graphics data representing a single seamless image being generated from two sets of graphics data having different focal distances.
The following description of the best mode for carrying out the invention on the basis of embodiments shall be made in the order indicated below.
A. Arrangement of Image Processing System:
B. Arrangement of Image File:
C. Panorama Synthesis Process in the first embodiment:
D. Panorama Synthesis Process in the second embodiment:
E. Variations:
A. Arrangement of Image Processing System:
The digital still camera 12, the personal computer PC, and the color printer 20 are mutually connectable via a cable CV. In the state of connection by the cable CV, the digital still camera 12 and the other constituents are allowed to transmit and receive image files via the cable CV. In the status of no connection by the cable CV, the digital still camera 12 and the other constituents are allowed to transmit image files therebetween via a memory card MC.
The digital still camera 12 includes an optical circuit 121 having a CCD that converts optical signals into electrical signals, an image acquisition circuit 122 that controls the optical circuit 121 to acquire image data, an image processing circuit 123 that processes the acquired image data, and a control circuit 124 that controls these respective circuits. The digital still camera 12 further has a selection/decision button 126 as a user interface and a liquid crystal display 127 used for preview of photographed images and user interfaces.
The shooting process (graphics data capture process) by the digital still camera 12 is carried out in the order: (1) setting of shooting mode by the user; (2) shooting (input of graphics data); (3) image processing; and (4) recording of graphics file. Shooting mode setting includes setting of lens focal distance. Setting of lens focal distance is carried out by exchanging lenses (not shown) or manipulating a zoom lens (not shown).
The photographing is performed by pressing a shutter button by the user. In response to the press of the shutter button, the photographing is performed with a focal distance available by the lens equipped with the digital still camera 12. For example, when photographed with a zoom lens providing a variable focal distance in response to the user operation, the photographing and the original image data generation are performed with an adjusted focal distance.
The original image data thus generated are subjected to image processing for storage. This image processing is a pre-treatment of the original image data, prior to storage into the memory card MC. The general procedure converts the original image data into a JPEG format suitable for storage of photographic images. After conversion into the JPEG format, the procedure adds photographing information PI to the converted image data to create an image file.
The photographing information PI regards photographing conditions and includes information representing the selected light metering. The process of acquiring image data in the digital still camera 12 terminates with recording of the image file into the memory card MC. The structure of the image file will be discussed later.
The color printer 20 is capable of outputting color images. One typical example of the color printer 20 is an ink jet printer that ejects four different color inks, cyan (C), magenta (M), yellow (Y), and black (K) on a printing medium to form a dot pattern and thereby complete a printed image.
B. Arrangement of Image File:
The image file GF includes an SOI marker segment 101 representing a header of compressed data, an APP1 marker segment 102 storing attribute information of the Exif format, an APP2 marker segment 103 storing Exif extended data, a DQT marker segment 104 defining a quantization table, a DHT marker segment 105 defining a Huffman table, a DRI marker segment 106 defining an insertion interval of a restart marker, an SOF marker segment 107 representing various parameters relating to frames, an SOS marker segment 108 representing various parameters relating to scanning, an EOI marker segment 109 representing a termination of the compressed data, and an image data storage area 110.
The APP1 marker segment 102 stores an APP1 marker 1021, an Exif identification code 1022, a TIFF header and other attribute information 1023, and thumbnail image data 1024. The attribute information 1023 has a TIFF structure with a file header (TIFF header) and includes, in the case of an Exif-JPEG file, 0th IFD storing attribute information relating to compressed image data, Exif IFD storing the photographing information PI and other attribute information inherent to the Exif format and 1st IFD storing attribute information relating to thumbnail images. The Exif IFD is pointed by an offset from the TIFF header stored in the 0th IFD. Tags for identifying various pieces of information are used in the IFD, and the respective pieces of information may be referred to as tag names.
C. Panorama Synthesis Process in the First Embodiment:
In Step S110, the CPU 231 performs a color conversion process after having expanded the compressed YCbCr data. By means of this color conversion process, the YCbCr data is converted to RGB data. The reason for conversion to RGB data is that RGB data is used in image processing in the personal computer PC and in the color printer 20. Both the RGB and the YCbCr data take the form of planar images composed of a plurality of pixels in a plane (herein also termed planar pixels) arrayed on a plane.
In Step S120, the CPU 231 performs a coordinate conversion process on the RGB data. This coordinate conversion process is specifically a process in which the RGB data, which is a planar image, is projected onto a cylindrical surface positioned in a cylindrical coordinate system, to generate graphics data on a cylindrical surface. Hereinafter, graphics data generated in this way shall be referred to as cylindrical RGB data, and RGB data composed as a planar image shall be referred to as planar RGB data.
FIGS. 7(a) and 7(b) are illustrations depicting the positional relationship between planar RGD data MI and a projection plane CYL in a cylindrical coordinate system.
The lens L replaces the several lenses of the digital still camera 12 optical system with a single lens having the same effect. The center of the lens L is termed the principal point, and the plane passing through the principal point and perpendicular to the optical axis Laxis is termed the principal plane. As regards the lens L, there are defined an objective surface indicating a subject, and an imaging surface which focuses light from the subject. The objective surface and the imaging surface are defined as being situated spaced apart from the principal plane in the optical direction, by an objective surface distance a and an imaging surface distance b, respectively.
The image pickup device is positioned with its photoreceptor surface aligned with this imaging surface. By means of this arrangement, light from the subject on the objective surface passes through the lens L and is focused on the photoreceptor surface of the image pickup device.
The projection plane CYL is established as part of a cylindrical surface which is a collection of a plurality of points situated away by imaging surface distance b from the axis Caxis of the cylindrical coordinate system. The axis Caxis is an axis that passes through a point PP corresponding to the principal point of
Focal plane resolution unit specifies the unit for measuring resolution of the width of the focal plane and resolution of the height of the focal plane. Resolution of focal plane width represents the number of pixels in the image width direction per unit of focal plane resolution. Resolution of focal plane height represents the number of pixels in the image height direction per unit of focal plane resolution. Here, focal plane refers to the imaging plane in which light from the subject focuses; as noted, it is aligned with the photoreceptor surface of the image pickup device.
In Step S220, the CPU 231 performs the following processes.
(1) The cylindrical coordinate system shown in
(2) A cylindrical surface centered on the axis Caxis of the cylindrical coordinate system is established on the cylindrical coordinate system. In this embodiment, to facilitate understanding, lens focal distance is deemed the constant distance mentioned previously.
(3) Planar RGB data is placed at a predetermined location on the cylindrical coordinate system.
Placement of the planar RGB data is carried out at a location situated away, by the equivalent of the lens focal distance, from the axis Caxis, and with an orientation such that the centerline CL extending in the height direction of the planar RGB data parallel with the axis Caxis. The reason for placing the data so that the centerline CL extending in the height direction of the planar RGB data parallel with the axis Caxis is in order to control distortion of the image in the image lateral direction in the panorama synthesis process, which typically involves seaming together images in the lateral direction.
In Step S230, the CPU 231 determines the size of the planar pixels of the planar RGB data, and the size of the cylindrical pixels on the projection plane CYL. With regard to the planar pixel size, specifically, pixel size in the width direction can be determined by dividing the focal plane resolution unit by the resolution of focal plane width, and pixel size in the height direction by dividing the focal plane resolution unit by the resolution of focal plane height. The planar pixel size determined in this way will correspond to image pickup device pixel size, in the event that there no resampling of data obtained from the image pickup device.
FIGS. 9(a) and 9(b) are illustrations depicting the positional relationship between planar RGB data and the projection plane CYL, viewed from the axis Caxis direction.
In
The angle θ0 representing cylindrical pixel width is established on the basis of a planar pixel PXL in proximity to the optical axis Laxis. Specifically, a cylindrical pixel row P0 is determined by projecting a planar pixel C0 onto the projection plane CYL, and the angle θ0 of the cylindrical pixel row P0 so determined is designated as the angle of the cylindrical pixel rows. By establishing cylindrical pixels (not shown) in this way, it is possible to construct a cylindrical image in the projection plane CYL (Step S240).
In Step S250, the CPU 231 extracts the pixel values of the cylindrical pixels, from the pixels values of the planar pixels of the planar RGB data MI.
In
The pixel value of the cylindrical pixel P3R can be extracted in the following manner, from the pixel values of the planar pixels C3R, C4R. The projection point X1 is projected into the planar pixel C3R, and is situated a distance 50a away from the center location of the planar pixel C3R, and a distance 50b away from the center location of the planar pixel C4R. These distances 50a, 50b can be calculated from the planar RGB data and the lens focal distance by the CPU 231.
Where a bilinear interpolation method is used, the pixel value of the cylindrical pixel P3R can readily be extracted with the calculation equation: ((pixel value of planar pixel C3R×distance 50b+pixel value of planar pixel C4R×distance 50a)/(distance 50a+distance 50b)). Other calculation methods include the cubic convolution method and other extraction methods. The reason for projecting the planar RGB data MI onto a cylindrical surface prior to synthesis of the graphics data is as follows.
As will be apparent from
On the other hand, as will be apparent from
In Step S130, the CPU 231 carries out a feature point extraction process on the two sets of cylindrical image data. The feature point extraction process is a process for extracting feature points that well represent an external characteristic of a subject in an image. FIGS. 13(a), 13(b), and 13(c) are illustrations depicting feature points extracted from each, set of cylindrical graphics data. Each feature point need not have size equivalent to one pixel, but may be an area composed of several pixels.
The feature point extraction process may be carried out by the following method, for example. First, the CPU 231 extracts the contour line as a collection of points, using a Sobel filter or other contour line extraction filter.
Next, the CPU 231, using an SRA (Side effect resampling Algorithm) or other resampling algorithm, extracts a feature point from the collection of points making up the extracted contour line.
The feature point data PICTa2 includes two feature points C1, Ca2, and the feature point data PICTb2 includes two feature points Cb1, Cb2. In
In Step S140, the CPU 231 performs a corresponding point search process on two sets of feature point data PICTa2, PICTb2. The corresponding point search process is a process that searches for features points that correspond to one another among multiple images. This process is a process for determining a given location in a given subject among multiple sets of graphics data targeted for panorama synthesis.
The corresponding point search process can be carried out by means of searching for a collection of a plurality of feature points that meet the following criteria, for example.
In feature point data PICTa2, there is recognized a positional relationship whereby approximate feature point Ca2 is positioned to the upper right of approximate feature point Ca1. On the other hand, in feature point data PICTb2, approximate feature point Cb2, which approximates approximate feature point Ca2, is positioned to the upper right of approximate feature point Cb1, which approximates approximate feature point Ca1. In this way, it is ascertained that the in each set of feature point data PICTa2, PICTb2, a plurality of approximate feature points have the same positional relationship. It can therefore be determined that feature point Ca1 of feature point data PICTa2 corresponds to feature point Cb1 of feature point data PICTb2, and that feature point Ca2 of feature point data PICTa2 corresponds to feature point Cb2 of feature point data PICTb2.
In Step S150, the CPU 231 performs a synthesis process of two sets of cylindrical graphics data. The synthesis process is a process for synthesizing multiple sets of graphics data in such a way that corresponding feature points align.
FIGS. 15(a) and 15(b) are illustrations giving a description of the synthesis process. The synthesis process is carried out by determining the positional relationship of two images in such a way that corresponding feature points are positioned in proximity, and the subjecting each image to localized deformation so that positions of corresponding feature points align.
In this embodiment, this placement is due to the fact that the distance between feature point Ca1 and feature point Ca2 is smaller than the distance between feature point Cb1 and Cb2, due to distortion of the images. The presence of distortion in each image is due to the fact that, while the image distortion shown in
Next, positional relationships of corresponding points are generated as vector data. This vector data is used during localized affine conversion of graphics data such that corresponding points align. One cylindrical image synthesized in this way is depicted in
In this way, in this embodiment, by synthesizing an image in a cylindrical coordinate system that reproduces the positional relationship between the optical system and the image pickup device when graphics data is generated in the digital still camera 12, since image distortion in the lateral direction of the image occurring when an image is generated using a planar image pickup device at a given focal distance is reduced, it is possible to suppress degradation in image quality produced during the process of synthesizing multiple sets of graphics data created using the image pickup device.
The functions of the focal distance determiner, the synthesis area establisher, the spheroidal image generator, the feature point extractor, the correspondence relationship determiner, the spheroidal image synthesizer, and the planar image generator recited in the claims are carried out by the CPU 231.
D. Panorama Synthesis Process in the Second Embodiment:
FIGS. 16(a), 16(b), and 16(c) are illustrations depicting graphics data representing a single seamless image being generated from two sets of graphics data having different focal distances. The two sets of graphics data are the graphics data generated by means of shooting the two frames Ff1, Fn1 shown in
The projection plane CYL on the cylindrical coordinate system is a projection plane established with the cylindrical coordinate system axis Caxis as its center, and having a radius equal to the focal distance Rf. The focal distance Rf is the longer of the two different focal distances established by shooting the two sets of planar RGB data MIn, MIf. The angle θ0 representing the cylindrical pixel width is established by a method similar to that of the first embodiment (
The reason that the cylindrical pixel angle θ0 is established on the basis of the planar pixels of the planar RGB data MIf is that if it were based on the planar RGB data MIn, the cylindrical pixel angle θ0 would be excessive with respect to the planar RGB data MIf, and information belonging to the planar RGB data MIf would be lost. On the other hand, if the cylindrical pixel angle θ0 were made smaller than this, the amount of data of the cylindrical image would become excessive with respect to information belonging to the planar RGB data MIf, MIn.
The pixel value of the cylindrical pixel P4L can be calculated as follows from pixel values of planar pixels of the planar RGB data MIf, MIn, in the same manner as in the first embodiment. The cylindrical image pixel P4L generated by converting the planar RGB data MIf is calculated from two pixels C4Lf, C5Lf of the planar RGB data MIf. Meanwhile, the cylindrical image pixel P4L generated by converting the planar RGB data MIn is calculated from two pixels C2Ln, C3Ln of the planar RGB data MIn.
In this way, the invention is applicable to cases in which a panorama synthesis process is carried out on two sets of graphics data having different focal distances.
E. Variations
The invention is not limited to the embodiments and embodiments set forth hereinabove, and may be reduced to practice in various other modes without departing from the spirit thereof, such as the following variations, for example.
In this case, planar pixel size of planar RGB data can be determined depending on 35 mm film size and pixel count. Specifically, pixel height can be calculated by dividing the length in the height direction of 35 mm film size by the pixel count, and pixel width can be calculated by dividing the length in the width direction of 35 mm film size by the pixel count.
Where some or all of the functions of the present invention are realized through software, the software (computer program) may be provided in a form stored on a computer-readable recording medium. In the present invention, “computer-readable recording medium” is not limited to portable recording media such as flexible disks and CD-ROM, but includes also various flavors of RAM, ROM, and other computer internal storage apparatus, as well as hard disks and other external storage apparatus fixed in a computer.
This invention is applicable to computer output apparatus.
Number | Date | Country | Kind |
---|---|---|---|
2002-299772 | Oct 2002 | JP | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/JP03/13217 | 10/15/2003 | WO | 4/13/2005 |