An object plane is set, and appropriate image processing is performed according to the setting of the object plane. An image processing apparatus has a controller (7). The controller (7) receives image data for a captured image and distance information on the distance to a designated point in the captured image, sets an object plane (100) containing the designated point, converts the distance information to the information on the distance from the object plane, and performs predetermined image processing according to the converted distance information.
|
1. An image processing apparatus comprising:
an image sensor that captures an image;
an object plane setting means for setting an object plane in said captured image based on distance information corresponding to a point position designated by a user in a displayed image based on image data of the captured image;
an object plane changing means for changing the object plane by rotating the object plane at a rotational angle specified by the user with the point position maintained in the object plane;
a distance information conversion means for converting the distance information for at least one position of the image data external to the changed object plane according to the changed object plane using the rotational angle; and
an image processing means for performing image processing on the image data based on the converted distance information, wherein the image processing comprises: blurring the image data not on the changed object plane with a blur amount according to the converted distance information, and not blurring the image data on the changed object plane,; and
wherein a display control means for displaying a graphical indication of the changing of the object plane is displayed on a display screen with the image data.
16. An image processing method comprising the steps of:
capturing an image with an image sensor;
an image processor setting an object plane in said captured image based on distance information corresponding to a point position designated by a user in a displayed image based on image data of the captured image;
changing the object plane by rotating the object plane at a rotational angle specified by the user with the point position maintained in the object plane, in which the rotational angle is with respect to the object plane;
converting the distance information of the image data according to the changed object plane, wherein the converting the distance information of the image data according to the changed object plane includes, for a given point pn on the object plane having coordinates Xn, Yn and Zn, subtracting coordinates of the position designed by the user from the coordinates Xn, Yn and Zn of the given point pn to obtain coordinates Xn′, Yn′ and Zn′, and subtracting, from a first coordinate of the coordinates Xn′, Yn′ and Zn′, a product of a second coordinate of the coordinates Xn′, Yn′ and Zn′ and a tangent of the rotational angle, the first coordinate being different from the second coordinate; and
performing image processing on the image data based on the converted distance information, wherein the image processing comprises: blurring the image data of an object not on the changed object plane with a blur amount according to the converted distance information, and not blurring the image data of an object on the changed object plane,; and
wherein displaying a graphical indication of the changing of the object plane is displayed on a display screen with the image data.
0. 18. An image processing apparatus comprising:
an image sensor that captures an image;
a processing device that receives the image captured by the image sensor; and
a memory including instructions which, when executed by the processing device, control:
setting an object plane in said captured image based on distance information corresponding to a position designated by a user in a displayed image based on image data of the captured image;
changing the object plane by rotating at a rotational angle specified by the user with the position maintained in the object plane in which the rotational angle is with respect to the object plane;
converting the distance information of the image data according to the changed object plane, wherein the converting the distance information of the image data according to the changed object plane includes, for a given point pn on the object plane having coordinates Xn, Yn and Zn, subtracting coordinates of the position designed by the user from the coordinates Xn, Yn and Zn of the given point pn to obtain coordinates Xn′, Yn′ and Zn′, and subtracting, from a first coordinate of the coordinates Xn′, Yn′ and Zn′, a product of a second coordinate of the coordinates Xn′, Yn′ and Zn′ and a tangent of the rotational angle, the first coordinate being different from the second coordinate;
image processing on the image data based on the converted distance information, wherein the image processing comprises: blurring the image data of an object not on the changed object plane with a blur amount according to the converted distance information, and not blurring the image data of an object on the changed object plane; and
displaying a graphical indication of the changing of the object plane with the image data.
17. An image processing program stored on a A non-transitory computer-readable medium on which is stored an image processing program, the program causing a computer to execute an image processing method comprising the steps of:
capturing an image with an image sensor;
setting an object plane in said captured image based on distance information corresponding to a point position designated by a user in a displayed image based on image data of the captured image;
changing the object plane by rotating the object plane at a rotational angle specified by the user with the point position maintained in the object plane, in which the rotational angle is with respect to the object plane;
converting the distance information of the image data according to the changed object plane, wherein the converting the distance information of the image data according to the changed object plane includes, for a given point pn on the object plane having coordinates Xn, Yn and Zn, subtracting coordinates of the position designed by the user from the coordinates Xn, Yn and Zn of the given point pn to obtain coordinates Xn′, Yn′ and Zn′, and subtracting, from a first coordinate of the coordinates Xn′, Yn′ and Zn′, a product of a second coordinate of the coordinates Xn′, Yn′ and Zn′ and a tangent of the rotational angle, the first coordinate being different from the second coordinate; and
performing image processing on the image data based on the converted distance information, wherein the image processing comprises: blurring the image data of an object not on the changed object plane with a blur amount according to the converted distance information, and not blurring the image data of an object on the changed object plane,; and
wherein displaying a graphical indication of the changing of the object plane is displayed on a display screen with the image data.
2. The image processing apparatus according to
3. The image processing apparatus according to
4. The image processing apparatus according to
5. The image processing apparatus according to
6. The image processing apparatus according to
7. The image processing apparatus according to
8. The image processing apparatus according to
a storage means for storing the image data and the distance information in association with each other;
a designation means for designating the point position; and
a setting means for setting a tilt angle and a tilt direction of the object plane containing the point position with respect to an optical axis of a lens.
9. The image processing apparatus according to
10. The image processing apparatus according to
11. The image processing apparatus according to
12. The image processing apparatus according to
13. The image processing apparatus according to
14. The image processing apparatus according to
15. The image processing apparatus according to
|
The present application is a reissue application of U.S. Pat. No. 8,564,693 which issued on Oct. 22, 2013 which is a national phase entry under 35 U.S.C. § 371 of International Application No. PCT/JP2008/060733 filed Jun. 5, 2008, published on Dec. 11, 2008 as WO 2008/150027 A1, which claims priority from Japanese Patent Application No. JP 2007-150071 filed in the Japanese Patent Office on Jun. 6, 2007, and Japanese Patent Application No. JP 2008-133498 filed in the Japanese Patent Office on May 21, 2008.
The present invention relates to an image processing apparatus and, more particularly, to an image processing apparatus, image processing method and image processing program for performing image processing, such as blurring, according to a set object plane.
With a conventional imaging apparatus such as a film camera or digital camera, imaging may be performed by using camera movement of an imaging lens. “Camera movement” means lens operation (or camera operation) for changing imaging effect by breaking the basic relation between the imaging apparatus and the imaging lens in which the optical axis of the lens is perpendicular to the film plane (or imaging device plane) at the center of the imaging screen. Such operations are collectively called “camera movement”. Camera movement allows the perspective deformation of buildings or the like to be corrected, the depth of field to be controlled, and the camera's reflection in a mirror or the like to be avoided.
Camera movement can be broadly classified as shown in
Camera movement includes two groups of operations. One is “displacement” including “shift” and “rise/fall”. The other includes “swing” and “tilt”. The former translates the lens plane (or the film plane/imaging device plane) while maintaining the perpendicular relation between the optical axis of the imaging lens and the film plane (or the imaging device plane). In other words, the position at which the optical axis is perpendicular to the screen is translated off the center of the screen. The latter breaks the perpendicular relation between the optical axis of the imaging lens and the film plane (or the imaging device plane). In other words, the crossed angle between the optical axis and the film plane (or the imaging device plane) are changed from 90°.
In a strict sense, only the former “displacement” corresponds to camera movement. However, in a general sense, both the former and latter are often confused and collectively called “camera movement”. Then, in the following, for convenience, “shift,” “rise/fall,” “tilt,” and “swing” are called shift movement, rise/fall movement, tilt movement, and swing movement, respectively.
These are described in more detail below. “Shift movement” means moving the optical axis of the lens (or the film plane/the imaging device plane) left or right, which is used for improving composition or correcting distortion. This operation allows changing the composition in the horizontal direction without moving the camera itself. For example, using shift movement, it is possible to perform imaging at the position shifted left or right from the center of a mirror and obtain a photograph as if taken at the center of the mirror. “Rise/fall movement” means moving the lens plane (or the film plane/the imaging device plane) up or down, which is also used for improving composition or correcting distortion as with shift movement. Rise/fall movement allows improving composition in the vertical direction without extending the elevator or leg of a tripod. When shooting looking up at a tall building with a normal camera, the far part of the building may appear smaller and tapered in a photograph. Rise/fall movement may be used for perspective control to shoot the building so that it will appear upright.
“Tilt movement” means tilting the lens plane (or the film plane/the imaging device plane) forwards or backwards with respect to the optical axis of the lens, which is used generally for changing the position of the plane of sharp focus or correcting distortion. Tilt movement allows focusing over the wide range from near field to far field even at full aperture. “Swing movement” means swinging the lens plane (or the film plane/the imaging device plane) on the axis perpendicular to the optical axis of the imaging lens, which effect is similar to that of tilt movement described above.
For example, one principle for making depth of field look deeper by manipulating the object plane using tilt movement is known as “Scheimpflug principle”. In the following, an imaging method using the Scheimpflug principle is briefly described with reference to
In yet another known imaging method, for example, by using the camera movement effect according to the above method, towns and buildings are shot as if they were miniatures by adjusting the object plane, in addition to making depth of field look deeper by manipulating the object plane.
The above described imaging methods provide camera movement effects by manipulating an optical system. On the other hand, examples of imaging methods providing camera movement effects by digital processing include an imaging apparatus for performing correction by camera movement (shift movement, rise/fall movement) using image processing, without using a special lens (see JP-A-8-163428, for example), and a digital camera for converting an image that is already given a camera movement effect (for example, an image of a white board shot from an obliquely lower position) to a pseudo front image based on a manually set tilt angle and ranging data to an object (see JP-A-9-289610).
However, the technology disclosed in JP-A-8-163428 provides geometric correction similar to camera movement effect electronically with digital technology, but does not provide an imaging method corresponding to swing movement and tilt movement using image processing.
Also, the technology disclosed in JP-A-9-289610 provides a method for imaging by converting an image shot from an oblique direction to a pseudo front image, but does not provide an imaging method corresponding to swing movement and tilt movement using image processing, as in JP-A-8-163428.
In addition, obtaining by image processing an image that is given an effect equal to that of imaging with such a shallow depth of field and tilted object plane that imaging may not be performed with an actual imaging device/focal length, and obtaining by image processing an image that is given an effect equal to that of imaging with shallow depth of field have not been achieved yet.
In view of the above, the present invention is directed to perform image processing, such as blurring, according to a set object plane.
An image processing apparatus in accordance with a first aspect of the invention includes: an object plane setting section for setting an object plane based on distance information corresponding to a point designated by a user in a displayed image based on image data; a distance information conversion section for converting the distance information of the image data according to the object plane; and an image processing section for performing image processing on the image data based on the distance information converted by the distance information conversion section.
An image processing method in accordance with a second aspect of the invention includes the step of: setting an object plane based on distance information corresponding to a point designated by a user in a displayed image based on image data; converting the distance information of the image data according to the object plane; and performing image processing on the image data based on the converted distance information.
An image processing program in accordance with a third aspect of the invention causes a computer to execute an image processing method comprising the step of: setting an object plane based on distance information corresponding to a point designated by a user in a displayed image based on image data; converting the distance information of the image data according to the object plane; and performing image processing on the image data based on the converted distance information.
Thus, according to the first to third aspects, an object plane is set, and appropriate image processing is performed according to the setting of the object plane.
According to the invention, an image processing apparatus, image processing method and image processing program for performing image processing, such as blurring, according to the set object plane can be provided.
The best mode for carrying out the present invention (simply referred to as embodiments hereinafter) is described in detail below with reference to the drawings.
(First Embodiment)
First, the basic principle of an image processing apparatus in accordance with a first embodiment of the invention is described with reference to a conceptual drawing shown in
As shown in
While looking at the captured image displayed on the display 3, a user designates one or more designated points (desired points) by operating a touch panel 5, and arbitrarily sets the tilt direction and the tilt angle of an object plane by operating a cross-shaped key 4 (consisting of Up, Down, Left, and Right buttons, for example).
In this example, the internal memory 2 provides a storage capability, for example. The touch panel 5 provides a designation capability, for example. The cross-shaped key 4 provides a setting capability, for example.
In this configuration, a controller 7 sets the object plane based on the distance information for each region of the displayed image according to the image data, and based on the distance information of the designated point (s) designated by the user in the displayed image. Then the controller 7 converts the distance information for each point related to the image data, according to the object plane. An image processor 6 performs image processing on the image data based on the converted distance information. Thus, in this configuration, the controller 7 provides an object plane setting capability and a distance information conversion capability, and the image processor 6 provides an image processing capability.
Specifically, as shown in
For example, when the Left or Right button of the cross-shaped key 4 is operated, the object plane 100 rotates on the Y-axis, and the tilt direction and tilt angle corresponding to the rotation are set. Also, for example, when the Up or Down button of the cross-shaped key 4 is operated, the object plane 100 rotates on the X-axis, and the tilt direction and tilt angle corresponding to the rotation are set. As an example,
When the desired setting of the object plane 100 (101) using the touch panel 5 and the cross-shaped key 4 is completed, an image on which predetermined image processing such as blurring, is performed by the image processor 6 in the imaging apparatus are displayed on the display 3 (or an external display not shown).
More specifically, in this example, the distance information for each point of the image data are converted based on the coordinates of the designated point, then image processing such as blurring is performed on the image data based on the converted distance information. When the object plane is changed by rotating the object plane on the designated point according to the user designation, the distance information for each point of the image data is converted based on the coordinates of the designated point and the angle of the rotation. Then image processing such as blurring is performed on the image data based on the converted distance information. In this example, the image processor 6 provides this image processing capability, for example.
The distance information used in this embodiment is what is called depth map, which is the individual distance data for one or more points in the captured image. It should be noted that, when an image is most finely divided into regions, each region corresponds to a pixel. In this case, depth map data could mean distance data for each of a plurality of pixels.
Methods for obtaining this distance information include TOF (time of flight) method and depth from defocus method. TOF method is a technique for determining the distance to an object based on the delay time during which a light is emitted from a light source, is reflected by the object, and reaches a sensor, and the speed of light. These methods are described in detail later.
As described above, for the image processing apparatus in accordance with the first embodiment, when one point in the captured image is designated, a plane that contains the designated point and is perpendicular to the optical axis is set as object plane. More specifically, a plane that contains the designated point and a point having the same distance information as that of the designated point is set as object plane.
Furthermore, for example, when two or more points contained in the captured image are designated using the touch panel 5, the distance information for these two or more points are read out from the internal memory 2, the tilt direction and tilt angle of the object plane with respect to the optical axis of the lens are individually calculated, and the object plane is set based on the tilt direction and tilt angle, under control of the controller 7. A method for calculating the tilt direction and tilt angle is described in detail later.
In this way, the object plane perpendicular to the optical axis of the imaging lens, or one point not to be blurred, is designated using, e.g., the touch panel 5, and predetermined image processing such as blurring is performed based on the distances from the object plane. This provides an image given an effect equal to that of “imaging with such a shallow depth of field and tilted object plane” that imaging may not be performed by adjusting a focal length by adjusting the performance of an actual imaging device, lens position, and the like, without using optical camera movement effects (tilt movement or swing movement). Thus, when the image processing apparatus in accordance with the first embodiment is applied to an imaging apparatus, an image as if obtained using advanced techniques with a digital single lens reflex camera or large format camera can be easily obtained.
Next, an image processing apparatus in accordance with the first embodiment of the invention employing the above-described basic principle is described in detail with reference to a block diagram shown in
As shown in
A CPU (central processing unit) 21 is responsible for controlling a whole apparatus, and is communicatably connected to a ROM (read only memory) 22, a RAM (random access memory) 23, the image processor 24, an OSD (on-screen display) processor 26, an imaging condition detector 27, a camera drive controller 28, a range finder 29, and a touch panel 34 via a control bus 35.
Furthermore, the CPU 21 is connected to a memory card 31 via the control bus 35 and a memory interface (I/F) 30, and is connected to an operational input section 33 via the control bus 35 and an input I/F 32. In this configuration, the CPU 21, the ROM 22, and the RAM 23 form a controller 20.
In this configuration, the RAM 23 and the memory card 31 provide a storage capability, for example. The operational input section 33 provides a designation capability and a setting capability, for example. The image processor 24 provides an image processing capability, for example. The controller 20, more specifically the CPU 21, provides a control capability, for example.
In this configuration, the CPU 21 controls the components of the apparatus and reads out an image processing program from the ROM 22 to perform processing according to the program. The ROM 22 stores various fixed data in addition to the image processing program. In the processing, the RAM 23 serves as a work area.
An incident light from an object is imaged on the imaging device 12 through the imaging optical system 11. The camera drive controller 28 performs various drive controls such as exposure control, aperture control, focus control, zoom control, and shutter control. The imaging device 12 performs photoelectric conversion and provides an analog image signal to the image output section 13. The image output section 13 provides the analog image signal to the imaging condition detector 27. The imaging condition detector 27 detects the imaging condition including white balance for the analog image signal.
The image output section 13 further sends the analog image signal including a luminance signal and a color difference signal to the A/D converter 14. The A/D converter 14 converts the analog image signal to a digital image data and sends the image data to the memory controller 15. The memory controller 15 temporarily stores the image data in the display memory 16. The image data is read out through the memory controller 15 and sent to the display processor 17. The display processor 17 converts the image data to an RGB image data. The RGB image data is converted to an RGB analog image signal for liquid crystal driving by the D/A converter 18 and sent to the LCD monitor 19. Then the LCD monitor 19 displays alive image. The live image is referred to as through image.
With the live image displayed on the LCD monitor 19 in this way, when a shutter button, which is one element of the operational input section 33, is pressed, an imaging operation is performed.
Specifically, under the control by the controller 20, one frame of image data of the live image is captured into the frame buffer 25 through the image processor 24, compressed by the image processor 24, converted to an image file in a predetermined format, and recorded to the memory card 31 through the memory I/F 30. At the same time, information on the distance to the object measured by the range finder 29 including the imaging device (abbreviated to “distance information” hereinafter) is also recorded to the memory card 31 in a given format.
When the controller 20 reads out the image data and the distance information from the memory card 31, the compressed image data is decompressed by the image processor 24, stored in the frame buffer 25, and at the same time, written to the display memory 16 by the memory controller 15, read out from the display memory 16 to display the image on the LCD monitor 19.
In this state, when the user designates a desired point on the touch panel 34, the CPU 21 temporarily sets the point in the captured image as designated point. At this point, an object plane is temporarily set based on the set point. Furthermore, when a cross-shaped key, which is one element of the operational input section 33, is operated, the CPU 21 sets the tilt direction and tilt angle of the object plane based on that operation. In this way, on the image data stored in the frame memory 25, the CPU 21 of the controller 20 performs image processing using the image processor 24.
More specifically, under the control by the CPU 21, the image processor 24 performs image processing to blur pixels that are not on the object plane so that the same result can be obtained as a photograph taken with a film camera in which focus is achieved on shallow depth of field and the rest is blurred. The image data on which this blurring was performed is sent to the display processor 17 through the memory controller 15 to display the processed image on the LCD monitor 19. The processed image data is recorded to the memory card 31 through the memory I/F 30.
For blurring, the image processor 24 can also control the blur amount depending on the distance from the object plane. By this control, the blur amount can be gradually changed depending on the distance between the object plane and pixels. For example, increasing the blur amount as the distance between the object plane and the other pixels increases can provide blurring effect similar to that of the imaging optical system. Specifically, this can provide an effect such that the object plane is focused and the blur amount increases (and the image becomes increasingly blurred) as the distance from the object plane increases. In this example, the blur amount is controlled based on the relation of the distance between the object plane and the other pixels. However, similar control may be performed for each given region including two or more pixels, rather than for each pixel.
Next, a characteristic process performed by the image processing apparatus in accordance with the first embodiment of the invention to provide a correction equal to camera movement effect is described in detail below with reference to flowcharts shown in
The process described below also corresponds to the image processing method in accordance with the first embodiment.
Starting the process shown in
Specifically, through the above steps, under the control by the CPU 21 of the controller 20, image data is captured into the frame memory 25 through the image processor 24, compressed by the image processor 24, converted to an image file in a predetermined format, and recorded to the memory card 31 through the memory I/F 30. At the same time, distance information measured by the range finder 29 is also recorded to the memory card 31 in a given format.
In this example, imaging is performed by one imaging device 12, and distance information is generated by an imaging device (not shown) that is a component of the range finder 29. However, instead of using these two imaging devices, one imaging device 12 may be shared for performing imaging and generating distance information. Of course, performing imaging and generating distance information may be parallel processing or serial processing.
Methods for obtaining distance information include TOF method and depth from defocus method. “TOF” method is a technique for determining the distance to an object by measuring propagation delay time of a light during which the light is emitted from a light emitting device included in the range finder 29, is reflected by the object, and returns. “Depth from defocus” method is a technique for determining distance based on the result of analyzing blur amount in an image. When two imaging devices are used, the blur amount for imaging and the blur amount for ranging can be separately optimized by changing at least one of characteristic, size, and aperture condition between the imaging devices. When only one imaging device 12 is used, the blur amount for imaging and the blur amount for ranging can be optimized by changing, for example, aperture condition for between imaging and ranging. However, the means are not limited to these.
The captured image thus recorded is displayed on the LCD monitor 19 (step S4).
One example of the display is as shown in
Then a designated point is temporarily set in the captured image (step S5). The detail of the process in this subroutine is, for example, as shown in the flowchart of
Specifically, when a user designates an desired designated point in the captured image by operating the touch panel 34 (step S21), the CPU 21 determines whether it is a first designated point or not (step S22). If the CPU 21 determines that the designated point that has just been designated is the first one (Yes in step S22), the CPU 21 temporarily sets a plane containing the first designated point designated and perpendicular to the optical axis as a first object plane (step S23), stores information related to the first object plane (coordinates of the first designated point) in the RAM 23 (step S27), and displays the first designated point designated, on the captured image displayed on the LCD monitor 19 (step S28).
Then the CPU 21 determines whether or not the user has requested by operating the operational input section 33 and the like to finish designating designated points (step S29). If the CPU 21 determines that another designated point will be designated without finishing (Yes in step S29), the process returns to step S21 to repeat the above-described steps. If the CPU 21 determines that the designation of designated points should be finished (No in step S29), the process ends and returns.
On the other hand, in step S22, if the CPU 21 determines that the designated point that has just been designated is not the first one (No in step S22), the CPU 21 determines whether that designated point is a second one or not (step 24).
If the CPU 21 determines that the designated point that has just been designated is the second one (Yes in step S24), the CPU 21 performs conversion of the first object plane by rotating the first object plane on the X-axis and on the Y-axis, and temporarily sets the converted plane that further contains the second designated point as a second object plane (step S25). Then the CPU 21 stores information on the second object plane (coordinates, tilt angle, and tilt direction of the first and second designated points) in the RAM 23 (step S27), and displays the first and second designated points designated, on the captured image displayed on the LCD monitor 19 (step S28). However, only two points are not sufficient information for temporarily setting the object plane, because two or more planes may contain the line connecting the two points. Then the CPU 21 may temporarily rotate the first object plane on the Y-axis (or the X-axis) and set the rotated plane containing the second designated point as a second object plane.
Then, again, the CPU 21 determines whether or not the user has requested by operating the touch panel 34 and the like to designate another designated point (step S29). If the CPU 21 determines that another designated point will be designated (Yes in step S29), the process returns to step S21 to repeat the above-described steps. If the CPU 21 determines that another designated point will not be designated (No in step S29), the process ends and returns.
On the other hand, in step S24, if the CPU 21 determines that the designated point that has just been designated is not the second one (No in step S24), the CPU 21 determines that the designated point is a third one. Then the CPU 21 rotates the second object plane on the X-axis and on the Y-axis, and temporarily sets the rotated plane that further contains the first to third designated points as a third object plane (step S26). Furthermore, the CPU 21 stores information on the third object plane (coordinates, tilt angle, and tilt direction of the first to third designated points) in the RAM 23 (step S27), and displays the first to third designated points designated as the above, on the captured image displayed on the LCD monitor 19 (step S28).
Then, again, the CPU 21 determines whether or not the user has requested by operating the touch panel 34 and the like to designate another designated point (step S29). In this example, with the assumption that the number of designated points that can be designated is limited to up to three, designation of another designated point is not allowed (No in step S29), and the process returns to the main routine (from step S6 of
When the first to third designated points are designated through the above-described process, the conversion of distance information of the object plane determined by those designated points is performed. For example, when three designated points are designated, the distance information is converted to depth map data related to the distance information of the three designated points as shown in
Returning to
Now, the conversion of the distance data based on the setting of the object plane is described with reference to
In
When a second designated point P2 is additionally designated, a second object plane containing the first designated point P1 and the second designated point P2 is set. The first designated point P1 is still the center of another new coordinate system, with the coordinates of (0, 0, 0). The tilt angle of the second object plane with respect to the first object plane is θ. Assuming that the tilt direction is the Z-axis (positive) direction, for example, the point Pn on the first object plane is projectively transformed to information on the distance from the second object plane with the Z-coordinate converted to Zn′−Xn′·tan θ. This is the distance information on the point Pn after conversion. Here, for convenience of description, the conversion of the point Pn on the first object plane is described. However, similar conversion of distance information is performed on every point (for example, pixel by pixel). The same applies to the first object plane rotated on the Y-axis with the tilt angle of θ.
Additionally, when a third designated point is designated and a third object plane is set (not shown in
Specifically, for example, when the first to third designated points are designated on the objects O1 to O3, respectively, or when the first designated point is designated, and through a rotation of the object plane on the X- and/or Y-axis, the objects O1 to O3 are set to be on the object plane, blurring is performed according to the distance from the object plane, as shown in
Next, the CPU 21 determines whether or not the user has requested by operating the touch panel 34 and the like to adjust the object plane (step S8). If the CPU 21 determines that the adjustment is not to be performed (No in step S8), the image data of the image blurred as described above is recorded to the memory card 31 (step S12) and the whole process ends. In step S12, the image data before being blurred may also be recorded to the memory card 31. It is recommended that this data should be managed with a different number by incrementing the last number. On the other hand, the CPU 21 determines that the adjustment is to be performed (Yes in step S8), the tilt direction and tilt angle of the object plane with respect to the optical axis of the lens is set.
The detail of the setting is as shown in the flowchart of
Specifically, jumping to the process shown in
On the other hand, if the CPU 21 determines that the cross-shaped key has been operated, then the CPU 21 determines whether the operated key is the Up key or not (step S42). If the CPU 21 determines that the operated key is the Up key (Yes in step S42), the CPU 21 rotates the object plane on the X-axis with the upper portion tilted toward the back and proceeds to step S50 (step 43).
On the other hand, if the CPU 21 determines that the operated key is not the Up key (No in step S42), then the CPU 21 determines whether the operated key is the Down key or not (step S44). If the CPU 21 determines that the operated key is the Down key (Yes in step S44), the CPU 21 rotates the object plane on the X-axis with the lower portion tilted toward the back and proceeds to step S50 (step 45).
On the other hand, if the CPU 21 determines that the operated key is not the Down key (No in step S44), then the CPU 21 determines whether the operated key is the Right key or not (step S46). If the CPU 21 determines that the operated key is the Right key (Yes in step S46), the CPU 21 rotates the object plane on the Y-axis with the right portion tilted toward the back and proceeds to step S50 (step S47).
On the other hand, if the CPU 21 determines that the operated key is not the Right key (No in step S46), then the CPU 21 determines whether the operated key is the Left key or not (step S48). If the CPU 21 determines that the operated key is the Left key (Yes in step S48), the CPU 21 rotates the object plane on the X-axis with the left portion tilted toward the back and proceeds to step S50 (step S49).
Then if the CPU 21 determines that the operated key is not the Left key (No in step S48), the CPU 21 determines that the operation has been wrong and proceeds to step S50.
Then the CPU 21 determines whether the setting is to be ended or not, according to the operational input using the enter key, which is one element of the operational input section 33 (step S50). If the CPU 21 determines that the setting is not to be ended, the process returns to step S41 to repeat the above-described steps. On the other hand, if the CPU 21 determines that the setting is to be ended, the CPU 21 stores the setting information on the set object plane in the RAM 23 (step S51), and the process returns to the main routine (from step S10 of
The above-described process shown in
Returning to
In this way, the process returns to step S8, and the CPU 21 determines whether the adjustment of the object plane is to be performed again or not. If the CPU 21 determines that the adjustment is to be performed again, the CPU 21 repeats the process from step S9. If the CPU 21 determines that the adjustment is not to be performed again (No in step S8), the image data of the image blurred as described above is recorded to the memory card 31 (step S12) and the whole process ends.
Now, as a method for obtaining distance information, TOF method is described in more detail with reference to a conceptual drawing shown in
As described above, according to the first embodiment of the invention, an image given an effect corresponding to “camera movement (swing, tilt)” can be obtained with simple operation by obtaining distance information corresponding to an image imaged through an imaging optical system, designating a point in the captured image to set an object plane, and performing image processing based on the distance information and information on the object plane.
Of course, this capability can be implemented in an imaging apparatus such as a low-cost and compact digital still camera.
Specifically, according to an embodiment of the invention, an image given the effect corresponding to “camera movement (swing, tilt)” can be easily obtained, thus, for example, eliminating the need for a complicated mechanism for enabling optical camera movement such as swing and tilt (a mechanism design according to what is called “Scheimpflug principle”), and eliminating the need for an optical design specialized for “camera movement (swing, tilt)”. Then a low-cost and compact image processing apparatus and image processing method can be provided.
It should be noted that a generated object plane may be not only a plane, but may be any curved surface (e.g., variable field curvature). Specifically, for example, when a plane perpendicular to the optical axis is set as an object plane as shown in
Furthermore, as shown in
(Second Embodiment)
Next, a second embodiment of the invention is described.
The second embodiment of the invention implements the setting of an object plane and blurring using an image processing apparatus as described previously with an information processing apparatus such as a computer and accessory hardware.
As shown in
In this configuration, when image data and distance information is input from the input section 51, the controller 52 reads out the control program 53 stored in the storage 56 and performs processing based on the control program 53. Specifically, the controller 52 displays an image based on the image data on the display 54, and prompts a user to set an object plane by operating the operational input section 55.
When the user selects a desired point (or region) in the displayed image by operating the operational input section 55, the controller 52 sets an object plane based on the object plane setting capability 53a. Then the controller 52 sets the tilt direction and tilt angle of the object plane based on a further operation of the operational input section 55. Then the controller 52 performs image processing such as blurring based on the information on the finally set object plane and distance information, and displays the processed image on the display 54. The detail of the setting of the above example is similar to that of the first embodiment (see the flowcharts shown in
As described above, according to the second embodiment of the invention, an image given the effect corresponding to “camera movement (swing, tilt)” can be obtained with simple operation by prompting the user to set an object plane based on the input image data and distance information and performing an image processing based on the information on the object plane and the distance information.
In other words, the second embodiment of the invention can provide an image processing program for easily obtaining an image given the effect corresponding to “camera movement (swing, tilt)”. Also, by implementing this image processing program, an image given such an effect can be obtained easily and at a low cost using an information processing apparatus such as a computer.
In the above, the first and second embodiments of the invention has been described. However, of course, the invention is not limited to those embodiments, but various improvements or modifications may be made without departing from the spirit of the invention.
For example, in the above-described first and second embodiments, up to three desired point are designated using the touch panel while looking at the screen and an object plane is set based on the point. However the invention is not limited to these examples. The user may designate three points and also specify a depth of field (aperture) to adjust variation of blurring (using aperture priority provides an effect equal to that of imaging with such a shallow depth of field and tilted object plane that imaging may not be performed with an actual imaging device/focal length). The depth of field (aperture) may be fixed automatically. Furthermore, the user may designate four or more points and may calculate the depth of field so as to focus on all of the points or give some weight to each of the points. “Depth of field” means a range of distance within which focus is considered to be achieved around an object in focus.
The user may specify a focal length and aperture by 35 mm size conversion. Here, 35 mm size conversion means considering a lens of which angle of view is equal to that of 35 mm standard lens for each different imaging size as a standard lens. Or when four or more points are designated, an object plane can be determined based on ordinary solid analytic geometry. The same applies to the conversion of distance information based on information on an object plane. Of course, blurring algorithm is not limited to the above-described example.
The image processing is not limited to the above-described blurring, but includes various processing such as granulation, mosaic, changing texture, noise addition, changing luminance or chrominance, and stepwise gradation. Of course, an object plane may be a curved surface, such as spherical surface, cylindrical surface, conical surface, and higher-order approximated curved surface.
(Third Embodiment)
Next, a third embodiment of the invention is described.
In this figure, the image processing apparatus in accordance with the third embodiment is exemplarily applied to an imaging apparatus such as a digital camera.
As shown in
The recording media 65 may be what is called a memory card employing semiconductor memory, an optical recording media such as recordable DVD (digital versatile disk) and recordable CD (compact disc), a magnetic disk, and the like.
The camera 60 includes an optical system block 60a, an aperture 60b, an imaging device 60c such as CCD (charge coupled device), an A/D converter 60d, an optical block driver 60e, an aperture driver 60f, an imaging device driver 60g, a timing generator 60h, a drive section 60i, a detector 60j, and a blur detector 60k. The optical system block 60a includes a lens, a focusing mechanism, a shutter mechanism, an aperture (iris) mechanism, and a hand blur correction driver. For the lens in the optical system block 60a, a zoom lens is used.
The controller 62 is an microcomputer in which a CPU (central processing unit) 62a, a RAM (random access memory) 62b, a flash ROM (read only memory) 62c, a clock circuit 62d, and the like are connected via a system bus 62e, and is responsible for controlling components of the imaging apparatus in accordance with this embodiment.
The RAM 62b is mainly used as a work space, for example, for temporarily storing an intermediate result of processing. The flash ROM 62c stores, in advance, various programs to be executed by the CPU 62a and data to be used in processing. An image processing program may be stored in the flash ROM 62c. The clock circuit 62d can provide the current date, the current day of the week, and the current time of the day, and can also provide a shooting date and time.
In capturing an image, the optical block driver 60e generates a drive signal, in response to the control from the controller 62, for actuating the optical system block 60a and provides this signal to the optical system block 60a to actuate the optical system block 60a. In response to the drive signal from the optical block driver 60e, the optical system block 60a captures an image of an object and provides it to the imaging device 60c.
The imaging device 60c, which is responsible for performing photoelectric conversion on the image from the optical system block 60a, operates in response to the drive signal from the imaging device driver 60g and captures the image of the object from the optical system block 60a. Furthermore, based on a timing signal from the timing generator 60h controlled by the controller 62, the imaging device 60c provides an analog image data of the captured image of the object to the A/D converter 60d. The A/D converter 60d performs an A/D conversion and generates a digitized image data.
This digitized image data is provided to the camera DSP 61. The camera DSP 61 performs camera signal processing, such as AF (auto focus), AE (auto exposure), and AWB (auto white balance), on the provided image data. The image data on which various adjustments have been performed in this way is compressed with a predetermined compression scheme, provided to the recording media 65 through the system bus 62e and the media I/F 64, and then recorded to the recording media 65.
After the image data is recorded in the recording media 65, a desired image data is read out from the recording media 65 through the media I/F 64 in response to an operational input from the user accepted through the operation section 66 including a touch panel and control keys, and provided to the camera DSP 61.
The camera DSP 61 decompresses (expands) the compressed image data read out from the recording media 65 and provided through the media I/F 64, and provides the decompressed image data to the LCD controller 67 through the system bus 62e. The LCD controller 67 generates an image signal for the LCD 68 from the provided image data and provides the image signal to the LCD 68. This enables an image corresponding to the image data recorded in the recording media 65 to be displayed on the display screen of the LCD 68.
Also, image data provided through the external I/F 69 (for example, image data provided from an external personal computer connected with the external I/F 69) can be recorded to the recording media 65. The image data recorded in the recording media 65 can be provided to an external personal computer and the like through the external I/F 69.
Furthermore, with the external I/F 69 connected to a communication module to connect to a network such as the Internet, various image data and other information can be obtained through the network and recorded to the recording media 65. Or the data recorded in the recording media 65 can be sent to a destination through the network.
The external I/F 69 may be a wired interface such as IEEE (institute of electrical and electronics engineers) 1394 and USB (universal serial bus). Or the external I/F 69 may be a wireless interface using light or radiowave. Thus the external I/F 69 may be wired or wireless.
As described above, the image processing apparatus in accordance with the third embodiment is directed to provide a more simple imaging technique specifically corresponding to “camera movement (swing, tilt)”, and provide this using an image processing and image correction controlled by the CPU 62a, and additionally allows intuitive operation as one feature.
Now, a characteristic process using the image processing apparatus in accordance with the third embodiment of the invention is described in detail with reference to a flowchart shown in
Starting this process, the CPU 62a of the controller 62 performs imaging on the object using the imaging device 60c and generates a digital image data using the A/D converter 60d (step S101). Then the CPU 62a generates distance information (depth map) for the generated image data (step S102). The distance information (depth map) is distances to the object each related to each pixel of the image, and can be obtained using TOF (time of flight) method or depth from defocus method.
Then the CPU 62a records the image data and the distance information to the recording media 65 (step S103). In other words, the image data and the distance information are recorded to the recording media 65 through the media I/F 64 in association with each other. The distance information is maintained in the form of metadata. Storing the image data and the distance information associated with each other using a file number and the like to different locations may reduce the size of image files themselves. In this case, the association between them should be determined when using the image data and the distance information.
Then the CPU 62a controls the LCD controller 67 to display the image on the LCD 68 (step S104). Then the CPU 62a performs processing based on the manipulation of the object plane corresponding to “camera movement (swing, tilt)” (step S105). The detail of the process of step S105 is described later with reference to
The object plane is a plane that intersects with the extended light-accepting surface of the imaging device 60c and the extended principal plane of the optical system and on which focus is achieved, conforming to what is called Scheimpflug principle. In the image processing apparatus accordance with this embodiment, imaging is performed with the optical axis of the lens (almost) perpendicular to the imaging device plane, so that what is called camera movement (swing, tilt) operation cannot be performed using the imaging device 60c and the optical system of the optical system block 60a. The manipulation of the object plane corresponding to “camera movement (swing, tilt)” is performed using image processing.
Then the CPU 62a reads out the image data recorded in step S103 and performs image processing (blurring according to the distance from the object plane) using the object plane set in step S105 (step S106). The detail of the process of step S106 is described later with reference to
At this point, if the CPU 62a, when performing imaging, recorded image data for the displayed image to the recording media 65 as a different file than the original image data, the CPU 62a records at the same time image data for the displayed image on which the image processing has been performed. Then the process ends.
Next, the detail of the process of step S105 in
Entering this process, the CPU 62a accepts the designation of the center of the object plane by touching the touch panel 76 (step S201). Specifically, the CPU 62a detects the coordinates of a touched location and accepts the location as a designation of location. The center of the object plane is the rotation center of the object plane and is the three-dimensional and spatial center location on which the object plane rotates in a new coordinate system consisting of X-, Y-, and Z-axes.
Then the CPU 62a displays a point representing the rotation center of the object plane on the display screen of the LCD 68 to let the user know the rotation center of the object plane thus set (step S202). Then the CPU 62a performs coordinate conversion on the distance information (depth map) so that the rotation center of the object plane will be the center of the three-dimensional coordinate system (step S203).
The coordinates (X, Y, Z) of an image is defined by the two-dimensional coordinates (X, Y) and the depth coordinate (Z) of the image. The distance information (depth map) relates to the depth coordinate (Z) of the coordinates (X, Y, Z). The CPU 62a first performs conversion so that the coordinates (X, Y, Z) of the pixel set to the center of the object plane will be the origin (0, 0, 0) of the three-dimensional coordinate system. The coordinates of the other points (pixels) are converted to coordinates of a new coordinate system of which center is the coordinates of the center of the object plane. In this way, the distance information is converted to the distance from the object plane. The detail of this conversion of the distance information is as previously described with reference to
In this embodiment, the shape of the object plane is assumed to be a simple plane. When the center of the object plane on the display is shifted from the user-intended position, the correction is made by dragging the displayed point. For example, the center point can be moved in the direction specified by using the cross-shaped key 77 shown in
Then the CPU 62a determines whether the user has fixed the center of the object plane by operating the touch panel 76 (e.g. tapping the enter button) (step S204). When the center of the object plane has been corrected according to the user operation, the coordinates of the center changes. In this case, the process returns to step S203, and the coordinate conversion is performed again on the distance information (depth map) so that the corrected center of the object plane will be the center of the three-dimensional coordinate system. On the other hand, the center is fixed by, for example, tapping again the center of the object plane displayed on the LCD 68, the process proceeds to step S205.
If the CPU 62a determines that the center of the object plane is fixed by the user operation, the CPU 62a performs image processing on the displayed image and displays the image so that the effect will be seen when the object plane is manipulated (step S205). This displayed image is not the captured image data itself, but is an image written to the RAM 62b (or SDRAM 63) for displaying on the display screen (LCD 68) for the purpose of confirming the image itself or the effect of manipulating the object plane. This image processing may be a simplified processing because the purpose is only to confirm the image itself.
This displayed image may be downsized from the captured image data to an image matched with the resolution of the display screen (LCD 68) and temporarily stored in the RAM 62b (or SDRAM 63). Or, when imaging is performed, the displayed image may be stored in the recording media 65 through the media I/F 64 as a different file than the original image data.
Specifically, in step S205, blurring is performed according to the distance from the object plane in response to the distance from the object plane. The size of the displayed image may be smaller than that of the actually recorded image. It is desirable to reduce processing load and enable smooth user operation by displaying an image with a minimum size for the size and number of pixels of the display screen.
In this embodiment, it is assumed that only the object plane is manipulated with a fixed depth of field (however, shallower than that of actual imaging) for simple user operation.
Then the CPU 62a rotates the object plane according to the user operation (step S206). This rotation of the object plane is performed by rotating (or tilting) the object plane on the X- or Y-axis by tapping coordinates other than the center of the object plane.
More specifically, as shown in
The rotation of the object plane is performed by a coordinate conversion based on solid analytic geometry. For example, the distance from the object plane is calculated for each pixel. Specifically, according to the user operation of designating the rotation center of the object plane and rotating the object plane, the CPU 62a performs coordinate conversion from the distance information to the information on the distance from the object plane.
Then the CPU 62a performs image processing on the displayed image so that the effect of thus rotating the object plane on its rotation center 500b (or tilting the object plane) can be seen, and displays the displayed image on the LCD 68 (step S207). In other words, the CPU 62a performs blurring according to the distance from the rotated (tilted) object plane. The result is shown in
As with the image processing in step S205 described above, the size of the displayed image on which the image processing in step S207 is performed may be minimum for both smooth user operation and confirming the effect of the operation. Even after tilting the object plane, the rotation center of the object plane may be corrected by dragging. This may be achieved by performing coordinate conversion as is with step S203 described above.
Then the CPU 62a determines whether or not the user has requested by, for example, tapping again the center of the object plane displayed on the touch panel 76 to finish rotating the object plane (step S208). If the CPU 62a determines that the user has not requested to finish rotating, the process returns to step S206 to repeat the above-described steps. On the other hand, if CPU 62a determines that the user has requested to finish rotating, the process ends and returns to the process shown in
Next, the detail of the process of step S106 in
Starting the process, the CPU 62a sets pixels on which image processing is to be performed (step S301). Then the CPU 62a obtains the distance information on which coordinate conversion to the distance from the object plane has been performed (step S302). Then the CPU 62a obtains the blurring parameter corresponding to the distance information with reference to the table based on the relation shown in
Then the CPU 62a determines whether or not the processing has been completed with all of the pixels (step S305). If the CPU 62a determines that the processing has been completed with not all of the pixels, the process returns to step S301 to repeat the above-described steps. On the other hand, if the CPU 62a determines that the processing has been completed with all of the pixels, the process ends and returns to the process shown in
The basic process of performing imaging, setting the center of the object plane, manipulating the object plane, and performing the image processing has been described. In any of these steps, an operation can be undone by selecting “Cancel” or “Back”.
Specifically, as shown in
Also, as shown in
Furthermore, the confirmation of the effect corresponding to “camera movement (swing, tilt)” may require looking over every corner as well as around the center of the object plane at one time. In order to do this, as shown in
Tapping the “Hide” operation button 504a causes all elements other than the display screen 504 to be hidden and allows looking over the screen at one time to confirm the effect of manipulating the object plane. Tapping anywhere on the display screen 504 again causes the hidden elements to be shown again. Operating the “Hide” operation button 504a from a menu allows selecting an element not to be hidden and displaying the element. For example, it is possible to only show the rotation center of the object plane and hide the rest.
(Fourth Embodiment)
Next, a fourth embodiment of the invention is described.
The configuration of an image processing apparatus in accordance with the fourth embodiment is similar to that of the third embodiment (
In order to obtain the effect corresponding to “camera movement (swing, tilt),” manipulating the depth of field from the object plane as well as tilting the object plane is desirably possible. In view of the above, in the image processing apparatus and the image processing method in accordance with the fourth embodiment, when fixing the rotation center of the object plane (corresponding to step S204 of
Normally, the depth of field has the relation with the aperture as shown below.
Desirably, the depth of field can be changed even after the rotation center of the object plane is fixed or the object plane is tilted. So, in the image processing apparatus and the image processing method in accordance with the fourth embodiment, the depth of field can be reset by tapping twice the rotation center of the object plane and image processing based on the reset depth of field (corresponding to step S207 of
Specifically, as shown in
Specifically, in
The graph indicator 505a is not limited to indicating that the depth of field is “Shallow” or “Deep”. As seen from a display screen 506 shown in
For setting the depth of field by tapping twice the center of the object plane, tapping once the center of the object plane may be taken as an request for finishing the rotation of the object plane. Then, as shown in
(Fifth Embodiment)
Next, a fifth embodiment of the invention is described.
The configuration of an image processing apparatus in accordance with the fifth embodiment is similar to that of the third embodiment (
The image processing apparatus and the image processing method in accordance with the fifth embodiment are characterized in that, instead of superimposing the “Finish” button on the displayed image, tapping twice and requesting for finishing the rotation of the object plane are performed using the same user interface (UI).
Specifically, as shown in
Then, as shown in
If a predetermined time required for the user to set the depth of field to “Deep” (for example, one second) has elapsed with no second tapping performed on the touch panel 76, an indication of a graph indicator 510a on a display screen 510 is gradually changed towards “Finish,” as shown in
If the indication has reached “Finish” with no second tapping performed on the touch panel 76, the CPU 62a takes this as a request for finishing the rotation of the object plane (corresponding to step S208 of
Thus, in the image processing apparatus and the like in accordance with the fifth embodiment, after a predetermined time elapses, the indication changes to that for requesting to finish the rotation of the object plane (corresponding to step S208 of
A method for setting the depth of field is not limited to setting according to the time length for tapping twice. For example, a first tapping may cause a display screen 511 shown in
Furthermore, when tapping the rotation center of the object plane (for fixing the object plane in step S204 of
Specifically,
When tapping is performed within this range on the touch panel 76, the CPU62a determines that “the center of the object plane” is tapped and performs an appropriate processing. When tapping is performed outside the range, other processing (such as rotating or tilting the object plane) is performed.
Again, of course, various screen displays such as “Cancel,” “Back,” “Hide,” and “Finish” (buttons), and rough indication of the depth of field are placed desirably outside the range that is determined to be “the center of the object plane”.
(Sixth Embodiment)
Next, a sixth embodiment of the invention is described.
The configuration of an image processing apparatus in accordance with the sixth embodiment is similar to that of the third embodiment (
In the image processing apparatus and the image processing method in accordance with the sixth embodiment, when the object plane is rotated (tilted) according to step S206 of
Specifically, the sixth embodiment helps the user operation by gradually displaying the angle of tilting the object plane on a display screen 514, as shown in
The proximity of the center of the object plane is a tap range that is determined to be “the rotation center of the object plane”. The further from there, the larger the amount of tilt (angle of rotating/tilting the object plane) is specified. In other words, the amount of tilt is set depending on the distance from the coordinates of the center of the object plane to the coordinates of the tap position (X, Y). For example, the amount of tilt may be one degree for proximity to the rotation center of the object plane, two degrees for far areas, and three degrees for further areas.
The angle of the rotation, that is the angle of coordinate conversion based on solid analytic geometry, may be set so as to change gradually from the rotation center of the object plane, and more preferably, can be precisely adjusted according to the distance from the rotation center of the object plane to the tap location. Also, even when gradually indicated, the angle may actually be set more precisely than what is indicated.
Thus the sixth embodiment provides intuitive operation to the user by changing the tilt angle in proportion to the distance from the rotation center of the object plane to the tap location.
The rotation angle of the object plane can be changed according to the angle of view of the captured image (recorded as metadata in step S101 of
(Seventh Embodiment)
Next, a seventh embodiment of the invention is described.
The configuration of an image processing apparatus in accordance with the seventh embodiment is similar to that of the third embodiment (
In photography, imaging may be performed with the horizontal and vertical directions precisely predetermined. Also, in manipulation of the object plane using an actual “camera movement (swing, tilt)” lens, the horizontal and vertical directions may be more precisely predetermined. In view of the above, the image processing apparatus and the image processing method in accordance with the seventh embodiment is characterized in that, in step S205 of
The horizontal line 515a and the vertical line 515b may be displayed based on the position and angle of the camera recorded as metadata (from an output of a gyroscope, for example) in performing imaging (step S101 of
For example, as shown in
With this state, the rotation of the object plane is performed only on the fixed line axis, and then, the angle of the rotation is determined by the distance from the line coordinate (Y in this case) to the tap location Y in this case). When the fixed line is tapped again on the touch panel 76, the CPU 62a releases the line.
As seen from a display screen 517 shown in
(Eighth Embodiment)
Next, an eighth embodiment of the invention is described.
The configuration of an image processing apparatus in accordance with the eighth embodiment is similar to that of the third embodiment (
The image processing apparatus and the image processing method in accordance with the eighth embodiment is characterized in that, in rotating (tilting) the object plane (step S206 of
For actual “camera movement (swing, tilt)” lenses, the angle with which the object plane is tilted can be known only through a finder or captured image. On the other hand, in this embodiment, which provides similar effect by image processing, the angle of rotating the object plane (corresponding to step S206 of
Specific examples of the displays are shown in
(Ninth Embodiment)
Next, a ninth embodiment of the invention is described.
The configuration of an image processing apparatus in accordance with the ninth embodiment is similar to that of the third embodiment (
In the above-described third to eighth embodiments, the object plane is assumed to be a simple plane. However, for the image processing apparatus and the image processing method in accordance with the ninth embodiment, the object plane is not limited to a simple plane. As a typical optical system (lens) has field curvature, the shape of the object plane for the imaging device, which is typically planar, will not be planar.
Meridional plane is a plane containing an optical axis and a main light beam. The meridional image plane is an image plane that gathers the most meridional light beams that run in the meridional plane. Sagittal plane is a plane perpendicular to the meridional plane. The sagittal image plane is an image plane that gathers the most sagittal light beams that run in the sagittal plane.
In the ninth embodiment, the shape of the object plane is assumed to be curved like actual lenses, instead of being planer. Accordingly, when the coordinate conversion on the distance information (depth map) is performed so that the rotation center of the object plane will be the center of the three-dimensional coordinate system in step S203 of
The shape of the object plane is maintained as data representing the relation between the image height (distance from the center of the image) and the shape of the object plane. It is maintained as with the distance information (depth map) so as to represent the relation between the location (X, Y) in the image and the shape of the object plane (Z).
Data for regions into which the whole image is horizontally and vertically divided may be maintained, or only the relation between the image height and the shape of the object plane may be maintained. The shape of the object plane may be maintained and recorded in the RAM 62b, or may be obtained from the outside through the external I/F 69.
Specifically, the CPU 62a performs the following calculations.
(1) First, the values of the coordinates (X, Y, Z) of the pixel set to the center of the object plane is subtracted from the coordinate information of all pixels so that the coordinates (X, Y, Z) will be the origin (0, 0, 0) of the three-dimensional coordinate system. This converts the information on the distance from the camera to the information on the distance from the plane that passes through the coordinates of the center of the object plane and perpendicular to the optical axis of the lens used for the imaging.
(2) Then, the shape of the object plane is added to or subtracted from the coordinate information (X, Y, Z) of each pixel location in the image (the order of this subtraction may be reversed depending on how to hold the data of the shape of the object plane). This converts the information on the distance from the plane that passes through the coordinates of the center of the object plane and perpendicular to the optical axis of the lens used for the imaging to the information on the distance from the object plane.
Including the calculation of the shape of the object plane increases a processing load. However, in order to allow the user to confirm the effect of the image processing and in order to help comfortable user operation, it is preferable to calculate the shape of the object plane at this stage. The calculations (1) and (2) can be performed at the same time.
Two types of calculation methods may be used for the calculation (2).
Align the rotation center of the object plane designated in step S201 of
Absolutely align the center of the image over the center of the shape of the object plane, and proceed the process.
In actual optical systems, the center of the image is aligned over the center of the shape of the object plane as with the latter. So the effect given by the latter is preferable to the user. Then the following description is based on the latter. However, in order to meet the need for a different effect than actual lenses, aligning the rotation center of the object plane over the center of the shape of the object plane may be allowed by specifying through a menu operation.
In actual “camera movement (swing, tilt)” lenses, when camera movement is used, the rotation center of the object plane moves away from the center of the image depending on the focal length, the tilt angle of the object plane, and the imaging distance (that is, the distance to the object). Preferably, the embodiment that provides the “camera movement (swing, tilt)” effect by the image processing also provides a means for allowing the reproduction of such behavior.
Thus, when the object plane is rotated in step S206 of
When the object plane is rotated in step S206 of
Then, by the coordinate conversion based on solid analytic geometry, the distance information is converted to the information on the distance from the plane that passes through the coordinates of the center of the object plane and is rotated by the angle specified/operated by the user for each pixel. In other words, the coordinate conversion for rotation is performed in the state of being planar.
The relation between the rotation angle of the object plane and the amount of the movement of the rotation center of the object plane from the center of the image may be maintained and recorded in the ROM 62b in advance, or may be obtained from the outside through the external I/F 69. The CPU 62a maintains this relation so that the amount of coordinate movement (X, Y) from the center of the image can be known from the rotation angle of the object plane.
The shape of the object plane that is moved (X, Y) from the center of the image depending on the rotation angle of the object plane is added to or subtracted from the coordinate information (X, Y, Z) of each pixel location in the image (this maybe reversed depending on how to hold the data of the shape of the object plane). This converts the information on the distance from the plane that passes through the coordinates of the center of the object plane and is rotated by the angle specified/operated by the user to the information on the distance from the object plane. In other words, finally, the object plane is restored to its shape again.
However some (more than a few) users would need to manipulate the shape of the object plane. So, it is also preferable to provide a capability of changing the shape of the object plane. Then, in the image processing apparatus and the image processing method in accordance with this embodiment, when the center of the object plane is kept pressed (without tapping and dragging) in step S204 or S206 of the
In the display screen 526 shown in
The operation of displaying the shape of the object plane is not limited to keeping the center of the object plane pressed. “Shape of the object plane” button may also be displayed on the display screen 526. The “Shape of the object plane” button is placed desirably outside the range that is determined to be “the center of the object plane”.
Also, a first tapping on the center of the object plane may cause a screen 527 to be displayed as shown in
Furthermore, including buttons such as “Cancel” and “Hide” in the screen display caused by the first tapping allows manipulating the object plane in the same UI.
(Tenth Embodiment)
Next, a tenth embodiment of the invention is described.
The configuration of an image processing apparatus in accordance with the tenth embodiment is similar to that of the third embodiment (
The rotation center of the object plane and the like may be designated by a means other than designation by the user. For example, the center of the object plane and the rotation angle of the object plane may be fixed based on a specific point (characteristic point) detected using a detection technique such as “facial recognition”.
Then in the image processing apparatus and the image processing method in accordance with the tenth embodiment, the CPU 62a recognizes the object by extracting specific points based on the brightness and contrast in the image, and matching the positions (positional relation) of the specific points with the pattern stored in the RAM 62b.
In an example shown in
Also, as shown in
Furthermore, as shown in
Furthermore, as shown in
At this point, the CPU 62a may determine an object having the highest proportion of a screen 532 to be the main object, and set the rotation center of the object plane to the center of the detected area of the main object. Then, from this point, the user can manipulate the object plane and set the depth of field. Also, when the detected area is designated, the CPU 62a can select the main object (e.g., the coordinates of the center of the detected area of the object) within that area.
For example, as shown in
Furthermore, as shown in
In this case, the rotation center of the object plane (534a) is set at the position being at the minimum distance from the set object plane, as shown in
Furthermore, as shown in
Then the CPU 62a specifies the main object (coordinates of the center of the detected area of the object) among the reset objects, and displays a blurred image as shown in
Of course, the image processing apparatus and the image processing method in accordance with the above-described fourth to tenth embodiments can be implemented with any combination of these embodiments. Also, though the description has been made on the premise that the touch panel 76 is used, the pointing device used for operational input is not limited to this, and similar convenience can be provided to the user, for example, by moving a cursor with the cross-shaped key 77 and specifying with the enter key 74.
The first to tenth embodiments of the invention has been described. These embodiments provide the following advantages.
Specifically, providing an image given the effect corresponding to “camera movement (swing, tilt)” by performing image processing eliminates the need for designing a special optical system and lens-barrel.
Eliminating the need for providing a complicated mechanism (in accordance with what is called Scheimpflug principle) eliminates the need for designing a special optical system intending “camera movement (swing, tilt)”. Further, an image processing apparatus that can provide an image given the effect corresponding to “camera movement (swing, tilt)” using an image imaged by a compact and low-cost imaging apparatus can be provided.
Providing an image given the effect corresponding to “camera movement (swing, tilt)” by image processing eliminates the need for complicated operation before imaging. This reduces the risk of missing a photo opportunity.
The image processing apparatus can provide a method for allowing flexible manipulation of the object plane corresponding to “camera movement (swing, tilt)” manipulation using a specially designed optical system and lens-barrel based on a prior art.
For manipulating the object plane, the image processing apparatus can provide an operational environment that is intuitive and friendly to the user. For example, the touch panel allows a more intuitive operation.
Displaying the rotation center of the virtual object plane set by the user on the display screen allows the user to manipulate the object plane and recognize the state of the object plane more easily.
Displaying the state of operating the virtual object plane by the user on the display screen allows the user to manipulate the object plane and recognize the state of the object plane more easily.
Even for an image with a deep depth of field imaged by a compact imaging apparatus employing the combination of a small imaging device and a short focal length lens, the image processing that provides a virtually shallow depth of field can be performed by allowing setting a virtual depth of field.
Allowing setting the shape of the virtual object plane can provide the user with a wider variety of image creation capability.
It should be noted that the invention is not limited to the above-described first to tenth embodiments and that various improvements and modifications can be made without departing the spirit of the invention. For example, the invention can be implemented as a program of the processing used in the above-described image processing apparatus, a recording media on which the above program is recorded, a program for implementing the above-described image processing method, and a recording media on which the above program is recorded.
Patent | Priority | Assignee | Title |
10964045, | Jul 05 2017 | Sony Semiconductor Solutions Corporation | Information processing device, information processing method, and individual imaging device for measurement of a size of a subject |
11425305, | Jul 31 2020 | BEIJING XIAOMI MOBILE SOFTWARE CO., LTD. | Control method and apparatus, electronic device, and storage medium |
Patent | Priority | Assignee | Title |
5168532, | Jul 02 1990 | Varian Medical Systems, Inc | Method for improving the dynamic range of an imaging system |
5185667, | May 13 1991 | Sony Corporation | Omniview motionless camera orientation system |
5231514, | Feb 05 1990 | MINOLTA CAMERA KABUSHIKI KAISHA, A CORP OF JAPAN | Image data processing device |
5313306, | Feb 08 1993 | Sony Corporation | Omniview motionless camera endoscopy system |
5359363, | May 13 1991 | Sony Corporation | Omniview motionless camera surveillance system |
5384588, | May 13 1991 | Sony Corporation | System for omindirectional image viewing at a remote location without the transmission of control signals to select viewing parameters |
5990941, | May 13 1991 | Sony Corporation | Method and apparatus for the interactive display of any portion of a spherical image |
6072529, | Sep 16 1996 | Monument Peak Ventures, LLC | Electronic camera for the realization of the imaging properties of a studio bellow camera |
6201574, | May 13 1991 | Sony Corporation | Motionless camera orientation system distortion correcting sensing element |
6449004, | Apr 23 1996 | Minolta Co., Ltd. | Electronic camera with oblique view correction |
6496598, | Sep 02 1998 | DYNAMIC DIGITAL DEPTH RESEARCH PTD LTD ; DYNAMIC DIGITAL DEPTH RESEARCH PTY LTD | Image processing method and apparatus |
6900841, | Jan 11 1999 | Olympus Corporation | Image processing system capable of applying good texture such as blur |
6914599, | Jan 14 1998 | Canon Kabushiki Kaisha | Image processing apparatus |
7064789, | Sep 21 1999 | Hoya Corporation | Digital camera having a tilting/swinging mechanism |
7268803, | Aug 26 1999 | Ricoh Company, LTD | Image processing method and apparatus, digital camera, image processing system and computer readable medium |
7627196, | Sep 18 2003 | Brother Kogyo Kabushiki Kaisha | Image processing device and image capturing device |
7714936, | May 13 1991 | Sony Corporation | Omniview motionless camera orientation system |
8290264, | Nov 28 2006 | Samsung Electronics Co., Ltd. | Image processing method and apparatus |
20020080242, | |||
20040051782, | |||
20040263646, | |||
20050220358, | |||
20060232665, | |||
20070019917, | |||
20070097381, | |||
20080309815, | |||
EP1950954, | |||
JP2000207549, | |||
JP2002312759, | |||
JP2003348430, | |||
JP2007124609, | |||
JP7021365, | |||
JP8163428, | |||
JP9289610, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Sep 16 2009 | MAKII, TATSUO | Sony Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 033664 | /0890 | |
Aug 27 2014 | Sony Corporation | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Mar 24 2021 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Date | Maintenance Schedule |
Jul 31 2021 | 4 years fee payment window open |
Jan 31 2022 | 6 months grace period start (w surcharge) |
Jul 31 2022 | patent expiry (for year 4) |
Jul 31 2024 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jul 31 2025 | 8 years fee payment window open |
Jan 31 2026 | 6 months grace period start (w surcharge) |
Jul 31 2026 | patent expiry (for year 8) |
Jul 31 2028 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jul 31 2029 | 12 years fee payment window open |
Jan 31 2030 | 6 months grace period start (w surcharge) |
Jul 31 2030 | patent expiry (for year 12) |
Jul 31 2032 | 2 years to revive unintentionally abandoned end. (for year 12) |