Feature #904 » image_processing.py
| 1 |
from PIL import Image, ImageChops |
|---|---|
| 2 |
import numpy as np |
| 3 |
|
| 4 |
def find_overlap(img1, img2): |
| 5 |
min_error = float('inf') |
| 6 |
overlap_width = 0 |
| 7 |
|
| 8 |
img1_gray = img1.convert('L') |
| 9 |
img2_gray = img2.convert('L') |
| 10 |
|
| 11 |
for slice_width in range(1, min(img1.width, img2.width) // 2): |
| 12 |
img1_slice = img1_gray.crop((img1.width - slice_width, 0, img1.width, img1.height)) |
| 13 |
img2_slice = img2_gray.crop((0, 0, slice_width, img2.height)) |
| 14 |
|
| 15 |
diff = ImageChops.difference(img1_slice, img2_slice) |
| 16 |
error = np.sum(np.array(diff)) |
| 17 |
|
| 18 |
if error < min_error: |
| 19 |
min_error = error |
| 20 |
overlap_width = slice_width |
| 21 |
|
| 22 |
return overlap_width |
- « Previous
- 1
- 2
- 3
- 4
- Next »