braillevision / tests /test_segmentation.py
Krishna Venkatesh
feat: scaffold BrailleVision app
e923c09
Raw
History Blame Contribute Delete
903 Bytes
import numpy as np
from braillevision.detection import detect_dots
from braillevision.segmentation import cluster_dots_to_cells
def test_synthetic_hello_segments_five_cells(synthetic_hello):
dots = detect_dots(synthetic_hello)
cells = cluster_dots_to_cells(dots)
assert len(cells) == 5
assert [(cell.row, cell.col) for cell in cells] == [
(0, 0),
(0, 1),
(0, 2),
(0, 3),
(0, 4),
]
def test_empty_input_segments_to_empty():
assert cluster_dots_to_cells([]) == []
def test_small_tilt_still_segments_five_cells(synthetic_hello):
try:
from scipy.ndimage import rotate
except Exception:
return
rotated = rotate(
synthetic_hello, angle=5, reshape=False, mode="constant", cval=255
).astype(np.uint8)
dots = detect_dots(rotated)
cells = cluster_dots_to_cells(dots)
assert len(cells) == 5