Adaptive image blending operations
First Claim
1. A non-transitory program storage device, readable by a processor and comprising instructions stored thereon to cause the processor to:
- obtain an overlap region between a left image and a right image, wherein the overlap region comprises a plurality of rows, each row having a plurality of pixels, each overlap region pixel having a corresponding pixel in the left image and a corresponding pixel in the right image, each pixel in the left and right images having a value;
identify a seam through the overlap region, the seam comprising a plurality of overlap region pixels, each overlap region pixel from a different row in the overlap region, wherein the seam divides each row in the overlap region into a left portion bounded by a left transition band boundary pixel on one end and the seam pixel on the other end and a right portion bounded by the seam pixel on one end and a right transition band boundary pixel on the other end;
determine a value for each seam pixel based on a combination of each seam pixel'"'"'s corresponding left and right image pixels;
identify a left smoothing function for each row in the overlap region, each left smoothing function having a zero value at the row'"'"'s left transition band boundary pixel and another value at the row'"'"'s seam pixel, the value of which is based on a combination of the row'"'"'s left transition band boundary pixel'"'"'s value and the row'"'"'s seam pixel value;
identify a right smoothing function for each row in the overlap region, each right smoothing function having a zero value at the row'"'"'s right transition band boundary pixel and another value at the row'"'"'s seam pixel, the value of which is based on a combination of the row'"'"'s right transition band boundary pixel'"'"'s value and the row'"'"'s seam pixel value;
apply, for each row in the overlap region, the corresponding left smoothing function to those pixels in the left image corresponding to the overlap region'"'"'s row'"'"'s left portion to generate corresponding left portion blended output image pixels;
apply, for each row in the overlap region, the corresponding right smoothing function to those pixels in the right image corresponding to the overlap region'"'"'s row'"'"'s right portion to generate corresponding right portion blended output image pixels; and
store the blended output image pixels in a memory.
1 Assignment
0 Petitions
Accused Products
Abstract
Special blend operations (referred to as “image seam-matching”) are described that keep the pixel values in the two images being blended the same along their transition border or seam, and smoothly increases/decreases pixel values on either side of the seam through the images'"'"' transition band (an area around the seam in which image blend operations are constrained). Image seam-matching provides many of the benefits of gradient blending (e.g., the avoidance of ghosting), without the associated computational overhead. This makes image seam-matching a particularly useful approach for real-time image processing such as during the real-time generation of wide area-of-view images. In situations where image seam-matching may be inappropriate, such as when the images being blended include long objects that span an entire overlap region(s), a mechanism is described which allows the selection of either, or both, seam-matching and cross-fading blend operations in a graceful or smooth manner.
-
Citations
20 Claims
-
1. A non-transitory program storage device, readable by a processor and comprising instructions stored thereon to cause the processor to:
-
obtain an overlap region between a left image and a right image, wherein the overlap region comprises a plurality of rows, each row having a plurality of pixels, each overlap region pixel having a corresponding pixel in the left image and a corresponding pixel in the right image, each pixel in the left and right images having a value; identify a seam through the overlap region, the seam comprising a plurality of overlap region pixels, each overlap region pixel from a different row in the overlap region, wherein the seam divides each row in the overlap region into a left portion bounded by a left transition band boundary pixel on one end and the seam pixel on the other end and a right portion bounded by the seam pixel on one end and a right transition band boundary pixel on the other end; determine a value for each seam pixel based on a combination of each seam pixel'"'"'s corresponding left and right image pixels; identify a left smoothing function for each row in the overlap region, each left smoothing function having a zero value at the row'"'"'s left transition band boundary pixel and another value at the row'"'"'s seam pixel, the value of which is based on a combination of the row'"'"'s left transition band boundary pixel'"'"'s value and the row'"'"'s seam pixel value; identify a right smoothing function for each row in the overlap region, each right smoothing function having a zero value at the row'"'"'s right transition band boundary pixel and another value at the row'"'"'s seam pixel, the value of which is based on a combination of the row'"'"'s right transition band boundary pixel'"'"'s value and the row'"'"'s seam pixel value; apply, for each row in the overlap region, the corresponding left smoothing function to those pixels in the left image corresponding to the overlap region'"'"'s row'"'"'s left portion to generate corresponding left portion blended output image pixels; apply, for each row in the overlap region, the corresponding right smoothing function to those pixels in the right image corresponding to the overlap region'"'"'s row'"'"'s right portion to generate corresponding right portion blended output image pixels; and store the blended output image pixels in a memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A hand-held electronic device, comprising:
-
an image capture element; a memory operatively coupled to the image capture element and having stored therein, computer program code; a display element operatively coupled to the memory; and one or more processors operatively coupled to the memory and the display element and configured to execute the computer program code to— use the image capture element to acquire first and second images, store the first and second images in the memory, determine an overlap region between the first and second images, wherein the overlap region comprises a plurality of rows, each row having a plurality of pixels, each overlap region pixel having a corresponding pixel in the first image and a corresponding pixel in the second image, each pixel in the first and second images having a value, identify a seam through the overlap region, the seam comprising a plurality of overlap region pixels, each overlap region pixel from a different row in the overlap region, wherein the seam divides each row in the overlap region into a left portion bounded by a left transition band boundary pixel on one end and the seam pixel on the other end, and a second portion bounded by a right transition band boundary pixel on one end and the seam pixel on the other end, determine a value for each seam pixel based on a combination of each seam pixel'"'"'s corresponding first and second image pixels, identify a left smoothing function for each row in the overlap region, each left smoothing function having a zero value at the row'"'"'s left transition band boundary pixel and another value at the row'"'"'s seam pixel based on a combination of the row'"'"'s left transition band boundary pixel'"'"'s value and the row'"'"'s seam pixel value, identify a right smoothing function for each row in the overlap region, each right smoothing function having a zero value at the row'"'"'s right transition band boundary pixel and another value at the row'"'"'s seam pixel based on a combination of the row'"'"'s right transition band boundary pixel'"'"'s value and the row'"'"'s seam pixel value, apply, for each row in the overlap region, the corresponding left smoothing function to those pixels in the first image corresponding to the overlap region'"'"'s row'"'"'s left portion to generate corresponding left portion blended output image pixels, apply, for each row in the overlap region, the corresponding right smoothing function to those pixels in the second image corresponding to the overlap region'"'"'s row'"'"'s right portion to generate corresponding right portion blended output image pixels, and store the blended output image pixels in the memory. - View Dependent Claims (11, 12, 13, 14)
-
-
15. A method to stitch multiple images into a single image, comprising:
-
obtaining an overlap region between a left image and a right image, wherein the overlap region comprises a plurality of rows, each row having a plurality of pixels, each overlap region pixel having a corresponding pixel in the left image and a corresponding pixel in the right image, each pixel in the left and right images having a value; identifying a seam through the overlap region, the seam comprising a plurality of overlap region pixels, each overlap region pixel from a different row in the overlap region, wherein the seam divides each row in the overlap region into a left portion bounded by a left transition band boundary pixel on one end and the seam pixel on the other end and a right portion bounded by a right transition band boundary pixel on one end and the seam pixel on the other end; determining a value for each seam pixel based on a combination of each seam pixel'"'"'s corresponding left and right image pixels; identifying a left smoothing function for each row in the overlap region, each left smoothing function having a zero value at the row'"'"'s left transition band boundary pixel and another value at the row'"'"'s seam pixel based on a combination of the row'"'"'s left transition band boundary pixel'"'"'s value and the row'"'"'s seam pixel value; identifying a right smoothing function for each row in the overlap region, each right smoothing function having a zero value at the row'"'"'s right transition band boundary pixel and another value at the row'"'"'s seam pixel based on a combination of the row'"'"'s right transition band boundary pixel'"'"'s value and the row'"'"'s seam pixel value; applying, for each row in the overlap region, the corresponding left smoothing function to those pixels in the left image corresponding to the overlap region'"'"'s row'"'"'s left portion to generate corresponding left portion blended output image pixels; applying, for each row in the overlap region, the corresponding right smoothing function to those pixels in the right image corresponding to the overlap region'"'"'s row'"'"'s right portion to generate corresponding right portion blended output image pixels; and storing the blended output image pixels in a memory. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification