openmv/scripts/unittest/tests/descriptor_match.py
iabdalkader 4b1837f72e scripts: Update unit tests.
Co-authored-by: Kwabena W Agyeman <kwagyeman@users.noreply.github.com>
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-10-18 17:14:36 +02:00

41 lines
1.2 KiB
Python

def unittest(data_path, temp_path):
import image
# Create two similar images
img1 = image.Image(64, 64, image.GRAYSCALE)
img2 = image.Image(64, 64, image.GRAYSCALE)
# Create same pattern in both
for y in range(64):
for x in range(64):
img1.set_pixel(x, y, 128)
img2.set_pixel(x, y, 128)
# Add same features
for i in range(15, 50, 15):
for j in range(15, 50, 15):
for dy in range(-2, 3):
for dx in range(-2, 3):
if 0 <= i+dx < 64 and 0 <= j+dy < 64:
img1.set_pixel(i+dx, j+dy, 255)
img2.set_pixel(i+dx, j+dy, 255)
# Find keypoints in both images
kpts1 = img1.find_keypoints(threshold=10, normalized=True, max_keypoints=20)
kpts2 = img2.find_keypoints(threshold=10, normalized=True, max_keypoints=20)
if kpts1 is None or kpts2 is None:
return True # No keypoints found, but test didn't fail
if len(kpts1) == 0 or len(kpts2) == 0:
return True
# Match keypoints
match = image.match_descriptor(kpts1, kpts2, threshold=85)
# Verify match result
if match is None:
return True # No match found, but test passes
return True