Perspec 1.0: The Document Scanner That Actually Gets Corners Right

Perspec 1.0: The Document Scanner That Actually Gets Corners Right

After nine years of development, Adrian Sieber releases Perspec 1.0, a desktop app for correcting perspective in photos of documents and receipts. Unlike mobile scanner apps that force JPEG output, Perspec saves clean PNGs, avoiding compression artifacts. Its unique corner-detection algorithm handles wrinkled and curved documents better than traditional edge-detection methods. The app also offers smart binarization that removes shadows before thresholding, producing crisp black-and-white scans.

Just because it can detect the document correctly in the preview video feed doesn't mean it will detect it correctly in the final photo.
  1. speerer

    Exciting! I needed this last week, and now here it is. Thanks.

    I share the annoyance about phone detection previees over-promising. But I'm pleased this comes with perspective correction and lighting correction together.

  2. giancarlostoro

    Be fully aware it is AGPL licensed before you try to use any of this code for something "at work" without realizing it. That said, looks neat!

  3. dmwood

    Crashes on launch

    macOS: macos-26_arm version installs (with intervention to permit running), but crashes on launch.

    -------------------------------------

    Translated Report (Full Report Below)

    -------------------------------------

    Process: perspec [94673]

    Path: /Users/USER//Perspec.app/Contents/Resources/perspec

    Identifier: perspec

    Version: ???

    Code Type: ARM-64 (Native)

    Role: Unspecified

    Parent Process: Exited process [94672]

    Coalition: com.adriansieber.Perspec [86355]

    Responsible Process: Perspec [94671]

    User ID: 501

    Date/Time: 2026-08-04 12:50:37.5848 -0600

    Launch Time: 2026-08-04 12:50:37.5821 -0600

    Hardware Model: Mac13,1

    OS Version: macOS 26.6 (25G72)

    Release Type: User

    Crash Reporter Key: 9FD40ACB-279F-0F79-41E1-8B4D3B663EA7

    Incident Identifier: 207F9047-B786-4C8C-8263-BA9C4DB370EB

    Time Awake Since Boot: 320000 seconds

    System Integrity Protection: enabled

    Triggered by Thread: 0

    Exception Type: EXC_CRASH (SIGABRT)

    Exception Codes: 0x0000000000000000, 0x0000000000000000

    Termination Reason: Namespace DYLD, Code 1, Library missing

    Library not loaded: /opt/homebrew//libwebp.7.dylib

    Referenced from: <47F30FA1-4AB9-310F-8988-5CABFEF76F5E> /Users/USER//Perspec.app/Contents/Resources/perspec

    Reason: tried: '/opt/homebrew//libwebp.7.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew//libwebp.7.dylib' (no such fil […]

More from this day

2026-08-04