speed boost round 1

main
Robert 8 months ago
parent 673913fdaa
commit 438f5a969a
  1. BIN
      a.jpg
  2. BIN
      b.jpg
  3. 32
      dedup.py

BIN
a.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 553 KiB

BIN
b.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 766 KiB

@ -346,6 +346,12 @@ def find_duplicate_with_rotation(img1, img2):
# Return similarity score (lower is more similar)
return len(matches)
def get_image_dimensions_cv(img):
if img is not None:
height, width = img.shape[:2]
return width, height
return None
"""
xxhash is about 510x faster than SHA256, non-cryptographic.
@ -383,6 +389,16 @@ if __name__ == "__main__":
# Load large images
large_img1 = cv2.imread(file1) # e.g., 4000x3000 pixels
large_img2 = cv2.imread(file2) # e.g., 4000x3000 pixels
w, h = get_image_dimensions_cv(large_img1)
w2, h2 = get_image_dimensions_cv(large_img2)
if w != w2 and w != h2:
print("Diffent Resolutions")
exit(0)
if h != h2 and h != w2:
print("Diffent Resolutions")
exit(0)
# Align with downscaling (initially process at 1/4 size)
aligned, matrix, angle = align_with_downscaling(
@ -397,12 +413,22 @@ if __name__ == "__main__":
# Print debug info
print(f"Detected rotation: {angle}°")
print(f"Final transformation matrix:\n{matrix}")
score = find_duplicate_with_rotation(large_img1, aligned)
print(f"Score: {score}")
# Calculate scores
matrix_score = matrix_similarity_score(matrix)
if len(sys.argv) > 3:
is_score = sys.argv[3]
else:
is_score = ""
if matrix_score == 1.0 and is_score != "scores":
print("✅ Perfect Matrix score, should be identical")
exit(1)
if is_score == "scores":
score = find_duplicate_with_rotation(large_img1, aligned)
print(f"Score: {score}")
decomposed_score = decomposed_similarity_score(matrix, large_img1.shape[1])
combined_score = comprehensive_similarity(large_img1, aligned, matrix)

Loading…
Cancel
Save