summaryrefslogtreecommitdiffstats
path: root/unshred-binary-merge-failure.py
diff options
context:
space:
mode:
Diffstat (limited to 'unshred-binary-merge-failure.py')
-rwxr-xr-xunshred-binary-merge-failure.py12
1 files changed, 8 insertions, 4 deletions
diff --git a/unshred-binary-merge-failure.py b/unshred-binary-merge-failure.py
index abb19c5..b8dc3c8 100755
--- a/unshred-binary-merge-failure.py
+++ b/unshred-binary-merge-failure.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
-# Instagram Unshredder -- Binary Simplify Failure
+# Instagram Unshredder - Binary Simplifier
# by Jason A. Donenfeld <Jason@zx2c4.com>
# for http://instagram-engineering.tumblr.com/post/12651721845/instagram-engineering-challenge-the-unshredder
@@ -29,10 +29,14 @@ def pixel_distance(a, b):
def match_score(left, right):
left = left[len(left) - 1]
right = right[0]
- total = 0
+ straight = 0
for i in xrange(0, image.size[1]):
- total += pixel_distance(pixel((left + 1) * shred_width - 1, i), pixel(right * shred_width, i))
- return total
+ straight += pixel_distance(pixel((left + 1) * shred_width - 1, i), pixel(right * shred_width, i))
+ shifted = 0
+ offset = image.size[1] / 35
+ for i in xrange(offset, image.size[1] - offset):
+ shifted += pixel_distance(pixel((left + 1) * shred_width - 1, i + offset), pixel(right * shred_width, i - offset))
+ return straight / shifted
def binary_simplify(order_lists):
simplified = list()
blacklist = list()