Image stitching methods and systems
View Patent ↗A method of image stitching may include: providing a first image and a second image, wherein the first and second images are neighboring and partially overlapping, wherein the first image comprises a first overlap portion that overlaps with a second overlap portion of the second image; applying a seam algorithm to the first overlap portion and the second overlap portion to produce a stitched overlap portion, wherein the seam algorithm uses an error minimization technique to identify a seam for the first and second overlap portions along which data for each of the first and second overlap portions are similar; replacing the first overlap portion of the first image with the stitched overlap portion to produce a modified first image; and replacing the second overlap portion of the second image with the stitched overlap portion to produce a modified second image.
1 . A method comprising:
providing a plurality of images arranged in two or more rows and two or more columns, wherein neighboring images within the plurality of images partially overlap;
applying a seam algorithm to first neighboring images of the plurality of images along a first row of the two or more rows or a first column of the two or more columns, wherein the seam algorithm (a) uses an error minimization technique to identify a non-linear seam for the overlapping portions of neighboring images along which data for each of the neighboring images' overlap portions are similar and (b) overwrites at least some of each of the overlapping portions with data from the other overlapping portion to generate modified neighboring and partially overlapping images;
applying the seam algorithm to second neighboring images of the plurality of images along a second row of the two or more rows or a second column of the two or more columns, wherein the second row neighbors the first row or the second column neighbors the first column;
applying the seam algorithm to third neighboring images of the plurality of images along at least two neighboring columns within the first and second rows or along at least two neighboring rows within the first and second columns;
reapplying the seam algorithm to the first neighboring images; and
reapplying the seam algorithm to the second neighboring images.
2 . The method of claim 1 , wherein the overlapping portions are 15% or less of the area of a neighboring image.
3 . The method of claim 1 , wherein the plurality of images are part of a data set that comprises: scanning electron micrograph images, transmission electron micrograph images, optical micrograph images, geospatial images, aerial images, or satellite images.
4 . The method of claim 1 , wherein the plurality of images are part of a data set that comprises: optical images, infrared images, Doppler images, thermal images, x-ray images, magnetic resonance images, or ultrasound images.
5 . The method of claim 1 , wherein the plurality of images are part of a data set that comprises 100 or more images.
6 . The method of claim 1 , wherein the plurality of images are part of a data set that comprises 10,000 or more images.
7 . The method of claim 1 further comprising:
before the applying of the seam algorithm, aligning the overlapping portions based on data of said portions to account for drift.
8 . A method comprising:
providing a plurality of images arranged in two or more rows and two or more columns, wherein neighboring images within the plurality of images partially overlap;
applying a seam algorithm to first neighboring images of the plurality of images along a first row of the two or more rows;
applying the seam algorithm to second neighboring images of the plurality of images along a second row of the two or more rows, wherein the second row neighbors the first row;
applying the seam algorithm to third neighboring images of the plurality of images along at least two neighboring columns within the first and second rows;
reapplying the seam algorithm to the first neighboring images; and
reapplying the seam algorithm to the second neighboring images; and
wherein the seam algorithm (a) uses an error minimization technique to identify a non-linear seam for the overlapping portions of neighboring images along which data for each of the neighboring images' overlap portions are similar and (b) overwrites at least some of each of the overlapping portions with data from the other overlapping portion to generate modified neighboring and partially overlapping images.
9 . The method of claim 8 , wherein the first neighboring images have first corresponding overlap portions, wherein the second neighboring images have second corresponding overlapping portions, wherein the third neighboring images have third corresponding overlap portions, and wherein the method further comprises one or more of (a), (b), or (c):
(a) before the applying of the seam algorithm to the first neighboring images, aligning the first corresponding overlap portions based on data of the first corresponding overlap portions to account for drift;
(b) before the applying of the seam algorithm to the second neighboring images, aligning the second corresponding overlap portions based on data of the second corresponding overlap portions to account for drift; and
(c) before the applying of the seam algorithm to the third neighboring images, aligning the third corresponding overlap portions based on data of the third corresponding overlap portions to account for drift.
10 . A method comprising:
providing a plurality of images arranged in two or more rows and two or more columns, wherein neighboring images within the plurality of images partially overlap;
applying a seam algorithm to first neighboring images of the plurality of images along a first column of the two or more columns;
applying the seam algorithm to second neighboring images of the plurality of images along a second column of the two or more columns, wherein the second column neighbors the first column;
applying the seam algorithm to third neighboring images of the plurality of images along at least two neighboring rows within the first and second columns;
reapplying the seam algorithm to the first neighboring images; and
reapplying the seam algorithm to the second neighboring images; and
wherein the seam algorithm (a) uses an error minimization technique to identify a non-linear seam for the overlapping portions of neighboring images along which data for each of the neighboring images' overlap portions are similar and (b) overwrites at least some of each of the overlapping portions with data from the other overlapping portion to generate modified neighboring and partially overlapping images.
11 . The method of claim 10 , wherein the first neighboring images have first corresponding overlap portions, wherein the second neighboring images have second corresponding overlapping portions, wherein the third neighboring images have third corresponding overlap portions, and wherein the method further comprises one or more of (a), (b), or (c):
(a) before the applying of the seam algorithm to the first neighboring images, aligning the first corresponding overlap portions based on data of the first corresponding overlap portions to account for drift;
(b) before the applying of the seam algorithm to the second neighboring images, aligning the second corresponding overlap portions based on data of the second corresponding overlap portions to account for drift; and
(c) before the applying of the seam algorithm to the third neighboring images, aligning the third corresponding overlap portions based on data of the third corresponding overlap portions to account for drift.
12 . A system comprising:
a processor;
a primary memory component and a secondary memory component each coupled to the processor; and
instructions provided to the primary memory component, wherein the instructions are executable by the processor to cause the system to perform a method comprising:
iteratively recalling pairs of images of a plurality of images arranged in two or more rows and two or more columns from the secondary memory component to the primary memory component, wherein each of the pairs of the first and second images are neighboring and partially overlapping;
performing on the primary memory component:
applying a seam algorithm to first neighboring images of the plurality of images along a first row of the two or more rows or a first column of the two or more columns, wherein the seam algorithm (a) uses an error minimization technique to identify a non-linear seam for the overlapping portions of neighboring images along which data for each of the neighboring images' overlap portions are similar and (b) overwrites at least some of each of the overlapping portions with data from the other overlapping portion to generate modified neighboring and partially overlapping images;
applying the seam algorithm to second neighboring images of the plurality of images along a second row of the two or more rows or a second column of the two or more columns, wherein the second row neighbors the first row or the second column neighbors the first column;
applying the seam algorithm to third neighboring images of the plurality of images along at least two neighboring columns within the first and second rows or along at least two neighboring rows within the first and second columns;
reapplying the seam algorithm to the first neighboring images;
reapplying the seam algorithm to the second neighboring images;
and
iteratively saving each pair of the modified neighboring and partially overlapping images to the secondary memory component.
13 . The system of claim 12 , wherein the overlapping portions are 15% or less of the area of a neighboring image.
14 . The system of claim 12 , wherein the plurality of images are part of a data set that comprises: scanning electron micrograph images, transmission electron micrograph images, optical micrograph images, geospatial images, aerial images, or satellite images.
15 . The system of claim 12 , wherein the plurality of images are part of a data set that comprises: optical images, infrared images, Doppler images, thermal images, x-ray images, magnetic resonance images, or ultrasound images.
16 . The system of claim 12 , wherein the plurality of images are part of a data set that comprises 100 or more images.
17 . The system of claim 12 , wherein the plurality of images are part of a data set that comprises 10,000 or more images.
18 . The system of claim 12 , wherein the method further comprises:
performing on the primary memory component:
before the applying of the seam algorithm, aligning the overlapping portions based on data of said portions to account for drift.