Perspec 1.0
11–20 of 22 posts
Re: Perspec 1.0
#12The Google Camera app already does this (much). I look into this problem during a receipt scanning project. If you want development ideas look up "metric rectification" and 'manifold dewarping'; e.g. https://openaccess.thecvf.com/content/WACV2025/papers/Hertle...
Re: Perspec 1.0
#13The Google Camera app already does this (much). I look into this problem during a receipt scanning project. If you want development ideas look up "metric rectification" and 'manifold dewarping'; e.g. https://openaccess.thecvf.com/content/WACV2025/papers/Hertle...
Samsung Galaxy camera as well. Just hit "scan" when it pops up and you get the same results.
Re: Perspec 1.0
#14Re: Perspec 1.0
#15Basically it steps through a folder with images, finds corners, user presses Space if ok, or adjusts corner if not (about 1 in 20 pages has a corner wrong). Undistort, contrast correct based on histogram, etc. happens automatically.
On the last page pressing Space creates a PDF.
My brother and I were digitizing medical bills for our mother and everything we tried to do this with out there was meh, cost money or both! It seems as soon as you need PDF anything it's $$$.
This is a throwaway tool as we're now more and more getting bills as digital files anyway.
My only input was specs, otherwise it's "vibe coded" if you want.
But consider that the Rust crate ecosystem is mature and my prof. background is computer graphics.
Oh, and I have an image manipulation crate that I wrote for work (closed source for now, unfortunately) that has corner pin with area filtering as a primitive.
I was just surprised how possible this is now.
This was earlier this year (Opus 4.8 was just out) and while we were photographing the pages with our smartphones Claude wrote the tool.
Re: Perspec 1.0
#16It is nagware: > Before an image is saved, a "Buy License" banner is shown for 10 seconds.
-or- just pay the author the $7 or whatevs if you use it.
Re: Perspec 1.0
#17It is nagware: > Before an image is saved, a "Buy License" banner is shown for 10 seconds.
meh, every single license key ever issued is stored in the binary.... also you can just compile your own copy from scratch. -or- just pay the author the $7 or whatevs if you use it.
It's not about the $7. I can even pay $20. It's about the principle of being against nagware. If the author had asked for a donation in a non-obstructive way, that would've worked.
Re: Perspec 1.0
#18Earlier quoted context omitted.
meh, every single license key ever issued is stored in the binary.... also you can just compile your own copy from scratch. -or- just pay the author the $7 or whatevs if you use it.
> just pay the author the $7 It's not about the $7. I can even pay $20. It's about the principle of being against nagware. If the author had asked for a donation in a non-obstructive way, that would've worked.
It is either that, or a SaaS wall.
Re: Perspec 1.0
#19Why it interests me:
1. A practical and elegant approach to scanning real-world documents like receipts, invoices, and letters. These usually have folds, curvature, and wrinkles, and general-purpose scanning tools do a poor job.
2. It's written in C.
3. It takes output quality seriously, finding color thresholds suitable for printed matter carefully and building PNG images instead of throwing you into a generic jpg pipeline.
Thank you for writing this software and also the introduction! Will definitely read further.
Re: Perspec 1.0
#20Crashes 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 proc…
Fixed this on main. The macOS build linked against Homebrew's libwebp by absolute path but never bundled it, so it only ran on machines that happened to have it installed. The build now copies all non-system dylibs into the app and rewrites the install names, and fails if any absolute reference survives.