Skip to content

v4.0.4

  • v4.0.4
  • 243b66f
  • Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
  • Choose a tag to compare

  • v4.0.4
  • 243b66f
  • Choose a tag to compare

  • Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
@eventualbuddha eventualbuddha tagged this 05 Dec 01:23
* fix(scan): combine adjacent partially-detected timing marks

Sometimes timing marks are not detected as one shape, often due to
streaks that bisect them. This causes us to either reject the ballot or
to use the partial mark as-is. Using the mark as-is means that the
center of the mark is slightly off from where it should be, which
affects locating and scoring bubbles. The 7px jiggle we do to find the
best match for the bubble location almost always corrects this, but
prior to this change we were allowing a large enough error in the timing
mark size that it could risk misinterpretation.

Now, this change both combines adjacent partial timing marks as long as
doing so makes the combined shape closer to the expected size than
either of its component parts. We're also now stricter about the error
tolerance in timing mark size, which should reduce the odds of
misinterpretation due to improper timing mark center positions leading
to improper expected bubble positions.

Finally, finding more complete timing marks means we can more
confidently set a minimum score for non-corner timing marks. For now,
this sets a fairly low score as the minimum (50%) to balance disallowing
bad marks with not being too aggressive at rejection.

* style(scan): fix clippy lints

* fix(scan): don't output elapsed time when printing JSON

* PR feedback

* PR feedback
Assets 2
Loading