The present disclosure relates to image creation, and more particularly to creating a new image that combines a base image from a sequence of images and a repositioned object from the sequence of images.
Recording an optimal photograph can be a challenging task. It may be difficult to record an image at the precise moment that a group of people are looking at a camera, are smiling, and are not blinking, for example. Also, cameras have differing autofocus speeds. If a depicted scene rapidly changes, it may be too late to record a desired image once a camera has focused on the subject. Some camera devices enable users to take a rapid set of sequential photographs as a “burst,” which can help with some of the problems discussed above. However, users may wish to combine aspects of multiple images.
According to one aspect of the present disclosure, a method implemented by a computing device is disclosed. Images from a sequence of images that depicts a scene are displayed on an electronic display. User input is received that selects an image from the sequence to be used as a base image. User input is also received that selects an object from the sequence of images. A movement trajectory of the selected object is determined from the sequence of images. The selected object is repositioned based on user input that drags the selected object along the determined movement trajectory from an initial position to a new position. A new image is created by combining the base image and the repositioned object.
In some embodiments, the method also includes receiving user input that selects an additional object from the sequence of images, performing a phase-based video motion processing algorithm to determine exaggerated movements of the additional object, and displaying the exaggerated movements of the additional object on the electronic display. Based on displaying the exaggerated movements, a selected depiction of an exaggerated movement of the additional object is received, and the selected depiction of the additional object is included in the new image.
According to another aspect of the present disclosure, a computing device is disclosed which includes an electronic display and one or more processing circuits. The one or more processing circuits are configured to display, on the electronic display, images from a sequence of images that depicts a scene. The one or more processing circuits are further configured to receive user input that selects an image from the sequence to be used as a base image, and receive user input that selects an object from the sequence of images. The one or more processing circuits are further configured to determine a movement trajectory of the selected object from the sequence of images, and reposition the selected object based on user input that drags the selected object along the determined movement trajectory from an initial position to a new position. The one or more processing circuits are further configured to create a new image by combining the base image and the repositioned object.
In some embodiments, the one or more processing circuits are further configured to receive user input that selects an additional object from the sequence of images, perform a phase-based video motion processing algorithm to determine exaggerated movements of the additional object, and display the exaggerated movements of the additional object on the electronic display. In such embodiments, the one or more processing circuits are further configured to, based on displaying the exaggerated movements, receive a selected depiction of an exaggerated movement of the additional object; and include the selected depiction of the additional object in the new image.
The present disclosure describes a method and apparatus for creating an image based on a sequence of images that depict a scene. The sequence of images may be frames of a video, for example. Images from the sequence are displayed on an electronic display (e.g., a touchscreen of a smartphone). One of the images from the sequence is selected as a base image. User input is received that selects object from the sequence of images. A movement trajectory of the selected object is determined from the sequence of images. The selected object is repositioned based on user input that drags the selected object along the determined movement trajectory from an initial position to a new position (e.g., using direct video manipulation) independent of other global movement in the pictures. A new image is created by combining the base image and the repositioned object. Optionally, a phase-based video motion processing algorithm can also be performed to determine an exaggerated movement of an object in one of the images from the sequence that may otherwise only have a subtle movement.
A user may wish to combine various aspects of the images 10A-F. For example, the user may wish to depict the golfer 12 in the celebratory position of 10F, but while the golf ball 14 is still visible. To accomplish this, the user could select image 10F as a base image. The user could then select the golf ball 14 from a previous image (e.g., image 10C), drag the golf ball along its trajectory to a desired position (e.g., its depiction close to the hole 16 in
The method 100 of
Referring to image 10F (in
The user drags the golf ball along the trajectory 32 from an initial position to a new position, as shown in
As shown in
The new image 30E is shown in
As discussed above, in one or more embodiments, an indication of the entire trajectory 32 of the selected object is displayed while the selected object is at a given point on the trajectory and the user input that drags the object is being received. This indication is a dotted line in the example of
In some embodiments, the deviation threshold is a static predetermined value. In some embodiments, the deviation threshold is determined dynamically based on the movement trajectory (e.g., more or less deviation being permitted depending on a length of the movement trajectory). In some embodiments, the deviation threshold is determined dynamically based on the scene being depicted. In such embodiments, more deviation may be permitted for more homogeneous backgrounds for which it is easier to fill “holes” in the base image that may result from repositioning the selected object, and less deviation is permitted for less homogenous backgrounds for which it is more difficult to realistically fill such “holes.” An example homogeneous background could include grass that is lit uniformly.
In some embodiments, the repositioned object includes not only a different location for the selected object, but also a different orientation. For example, if the object moving rotates during its movement along the movement trajectory 32 it may be desirable for the repositioned object to also show that rotated orientation. Consider, for example, that as a non-circular object was being thrown, that such an object would very likely rotate before landing. In examples such as this, the modified version of the selected object could also include a different orientation for the selected object. In some embodiments, the user could freeze the rotation of the selected object as it was dragged along the movement trajectory 32. In some embodiments, the object would rotate as it was dragged along the movement trajectory 32.
Thus, in one or more embodiments, repositioning the selected object includes determining a new location for the selected object, a new orientation for the selected object, or both. Additionally, in one or more embodiments a size of the selected object may be varied while the selected object is being dragged along the determined movement trajectory (e.g., as the object gets closer or further away). In some embodiments, repositioning the object includes repositioning a shadow of the selected object, such that a shadow of the object in the new position is shown in proximity to the new position instead of remaining in proximity to the initial position. In one or more embodiments, in addition to repositioning the shadow, other shadow adjustments are performed. Some example additional shadow adjustments include any combination of changes in shadow scale, luminance, shape, angle, and/or color. Such shadow adjustments may be performed based on a number of factors, such as the new position of the selected object, a size of the selected object when repositioned to the new position, and/or shadows of other items in proximity to the new position of the selected object.
In some embodiments in which a shadow of the selected object is also repositioned, the sequence of images may be recorded in 3D using, e.g., a stereoscopic camera, and movement of the shadow is analyzed using 3D data from the 3D sequence of images. For example, the individual component images that make up a given stereoscopic image may be analyzed to determine a degree to which a shadow moves along with the selected object along its movement trajectory.
In some embodiments, multiple copies of the selected object at different positions along the movement trajectory 32 could be included in a final new image. For example, the new image 20 of
In such embodiments, the selected object could be duplicated, and optionally also scaled, in the final image. For example, consider a video of a skier doing flips off of a downhill ski jump until the skier reaches a landing position. Using the techniques discussed above, multiple copies of the skier at various positions along their movement trajectory could be included in the final image. This could be performed to yield an image similar to what a multiple exposure image may resemble (e.g., multiple exposures of the skier at various positions along the motion trajectory recorded from a single camera location).
As shown in
In the example discussed above, the selected object was not present in the base image. However, if the selected object was present in the base image (e.g., if the golf ball 14 was shown in image 10F), then combining the base image and the modified version of the selected object includes determining pixels in the base image that are no longer occupied when the selected object is repositioned to the new position (i.e., “holes” in the base image). The determined pixels of the base image are then filled in based on an image area surrounding the determined pixels (e.g., using nearest neighbor, cloning, and/or content aware fill,). Alternatively, or in addition to this, the determined pixels could be filled based on one or more of the images from the sequence other than the base image (e.g., by copying pixels from the other images in the sequence).
In some embodiments, for facilitating the user input that drags the selected object along its movement trajectory, interpolation is performed. In such embodiments, performance of the interpolation may be triggered by a movement of the selected object between a first position in a first one of the sequence of images and a second position in a consecutive second one of the sequence of images exceeding a difference threshold. If that occurs, interpolation is performed to determine an additional position for the selected object along the movement trajectory that is between the first and second positions; and the selected object is displayed at the additional position while the selected object is being dragged along the determined movement trajectory between the first and second positions. This could provide for greater control over the movement of a selected object if the object is moving quickly and/or if the sequence of images was not recorded quickly enough to capture a desired amount of images of the selected object in motion.
Using
In one or more embodiments, the sequence of images is recorded by the same device that performs the method 100. In some such embodiments, the recording is performed based on a user actuation of a camera shutter. Such a user actuation could comprise a user depressing an actual shutter button, or could comprise a user selecting a shutter user interface element on a touchscreen, for example. In one or more embodiments, the plurality of images are recorded as frames of a video (e.g., a standard definition, high definition, or 4K video). In other embodiments, they are obtained as a series of still photos (e.g., as a photo burst). In one or more embodiments, the recording of the plurality of images starts before the shutter is actually actuated (e.g., after a camera smartphone application has been opened, and focusing has occurred) and completes after the shutter is actuated. Of course, it is understood that these are non-limiting examples, and that computing device that performs the method 100 could instead obtain the images as still images or video frames from a different device (e.g., a laptop computing device could obtain the images from a digital camera or video camera).
Referring again to
The computing device performing method 100 determines a boundary of the selected object in order to determine the movement trajectory. This may be performed using edge detection, for example. In the example of
Optionally, additional adjustments may be performed. This may include relocating additional objects in the new image (e.g., if multiple images have a movement trajectory in the plurality of images). In one example, the additional adjustments include performance of a phase-based video processing algorithm, as shown in
The method 200 will now be discussed in connection with
For the object selection of block 202 and/or for the object selection of block 106, the computing device receiving the object selection may perform edge detection to determine the extent of the object selected. If the object appears to include multiple elements (e.g., flag pole 18 and flat 19 of flag assembly 40), the computing device may ask for confirmation that the user intended to select each of the multiple pieces. If confirmation is not received, other combinations of elements (or a single element) may be suggested to the user based on their selection.
According to the method 200, a phase-based video motion processing algorithm is performed (e.g., as discussed at http://people.csail.mit.edu/nwadhwa/phase-video) to determine exaggerated movements of the additional object (block 204), which in this case is the flag assembly 40. Because those of ordinary skill in the art would understand how to perform a phase-based video motion processing algorithm to obtain exaggerated movements of an object, performance of the algorithm is not discussed in detail herein.
On the electronic display, the exaggerated movements of the selected additional object are displayed (block 206). Some example exaggerated movements are shown in
In the example of
The computing device 300 includes a processor 302 and electronic display 304. The processor 302 comprises one or more processor circuits, including, for example, one or more microprocessors, microcontrollers, or the like, and is also configured with appropriate software and/or firmware to carry out one or more of the techniques discussed above. The electronic display may be integrated in, or external to the computing device 300, for example. The processor 302 is configured to display, on the electronic display, images from a sequence of images that depicts a scene. The processor 302 is further configured to receive user input that selects an image from the sequence to be used as a base image, to receive user input that selects an object from the sequence of images, and to determine a movement trajectory of the selected object from the sequence of images. The processor 302 is further configured to reposition the selected object based on user input that drags the selected object along the determined movement trajectory from an initial position to a new position; and create a new image by combining the base image and the repositioned object.
The computing device 300 also includes an input device 306 and a memory circuit 308. In some embodiments, the input device 306 includes one or more touch sensors that work in conjunction with electronic display 304 to provide a touchscreen interface. Of course, other touch-based input devices could be used, such as a touchpad. In one example, the input device is a communication interface that receives input from an external device (e.g., a wireless mouse, or wired mouse). The input device 306 can be used to receive the user input that indicates the image selection and/or the user input that selects and drags the object along its movement trajectory.
Memory circuit 308 is a non-transitory computer readable medium operative to store a sequence of images (e.g., the images shown in
Optionally, the computing device 300 may also include a lens 310 and imaging sensor 312 configured to record a sequence of images (e.g., those of
The computing device 300 may be configured to implement any combination of the techniques described above. Thus, in one or more embodiments, the processor 302 is configured to reject the new position for the selected object if the new position deviates from the movement trajectory by more than a predefined deviation threshold. In the same or another embodiment, the processor 302 is configured to display an indication of the entire trajectory of the selected object while the selected object is at a given point on the trajectory and the user input that drags the object is being received. In the same or another embodiment, the processor 302 is configured to perform interpolation as discussed above.
In one or more embodiments, the computing device 300 is also operative to perform the method 200 of
Optionally, a computer program product may be stored in the memory circuit 308, which comprises computer program code which, when run on the computing device 300, configures the computing device 300 to perform any of the techniques discussed above.
In the prior art, photo manipulation has often been a complex task reserved for photography and graphic design professionals. Tools such as ADOBE PHOTOSHOP have complex user interfaces that permit free-form editing typically based on a single image. More recently, software such as REWIND from SCALADO has enabled a user to combine facial expressions from multiple photographs into a single image. However, none of these tools determine a movement trajectory of a selected object from a sequence of objects, and reposition a selected object based on user input that drags the selected object along the determined movement trajectory from an initial position to a new position. Moreover, such tools do not include performance of phase-based video motion processing algorithm to determine exaggerated movements of a selected object. Nor are the interpolation techniques described above included in such prior art tools.
Use of direct video manipulation via the dragging of the selected object along its determined movement trajectory can provide an advantageous user interface that works well with touch screen computing devices (for which interface elements may be limited). Also, use of the deviation threshold discussed above can be used to avoid unrealistic looking photo manipulations.
The present disclosure may, of course, be carried out in other ways than those specifically set forth herein without departing from essential characteristics of the present disclosure. For example, it should also be noted that, in some alternative implementations, the functions noted in the blocks may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. Thus, the present embodiments are to be considered in all respects as illustrative and not restrictive, and all changes coming within the meaning and equivalency range of the appended claims are intended to be embraced therein.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/IB2014/060235 | 3/27/2014 | WO | 00 |