Add README
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
4069491c2f
commit
3e0284da4c
64
README.md
Normal file
64
README.md
Normal file
@ -0,0 +1,64 @@
|
||||
# Skwik
|
||||
|
||||
Client-side image deskewing tool. Upload a photo taken at an angle, place reference measurements on known objects, and get a perspective-corrected output with real-world scale.
|
||||
|
||||
Everything runs in the browser -- no server, no uploads.
|
||||
|
||||
## How it works
|
||||
|
||||
1. **Upload** a JPG or HEIC image (HEIC is converted automatically)
|
||||
2. **Review EXIF** data -- camera, lens, focal length
|
||||
3. **Place datums** on the image -- rectangles or lines with known real-world dimensions
|
||||
4. **Run correction** -- OpenCV.js computes a perspective transform and outputs a corrected image
|
||||
|
||||
### The algorithm
|
||||
|
||||
The highest-confidence rectangle datum defines the initial perspective correction via `getPerspectiveTransform`. All other datums (rectangles and lines) are projected through that transform and measured. Per-axis weighted scale corrections are computed from the discrepancies, folded back into the destination rectangle, and a single clean `warpPerspective` produces the output. One matrix, one warp, no post-hoc distortion.
|
||||
|
||||
Datum confidence scores (1--5) act as weights in the correction.
|
||||
|
||||
## Quick start
|
||||
|
||||
```bash
|
||||
pnpm install
|
||||
pnpm dev
|
||||
```
|
||||
|
||||
Open `http://localhost:5173`.
|
||||
|
||||
## Build
|
||||
|
||||
```bash
|
||||
pnpm build # type-check + production build
|
||||
pnpm preview # serve the build locally
|
||||
```
|
||||
|
||||
## Lint & format
|
||||
|
||||
```bash
|
||||
pnpm lint # eslint (strict TS + Vue)
|
||||
pnpm lint:fix # auto-fix
|
||||
pnpm format # prettier
|
||||
pnpm type-check # vue-tsc
|
||||
```
|
||||
|
||||
## Stack
|
||||
|
||||
| Layer | Tech |
|
||||
|---|---|
|
||||
| Framework | Vue 3 + TypeScript (strict) |
|
||||
| Build | Vite |
|
||||
| Components | shadcn-vue + Tailwind CSS v4 |
|
||||
| Canvas | Konva.js + vue-konva |
|
||||
| CV | OpenCV.js 4.12 (WASM) |
|
||||
| HEIC | heic-to |
|
||||
| EXIF | exifr |
|
||||
| State | Pinia |
|
||||
|
||||
## Datum presets
|
||||
|
||||
Rectangles: A3, A4, A5, A6, 15x10 cm. Custom dimensions supported. Lines: any length.
|
||||
|
||||
## License
|
||||
|
||||
MIT
|
||||
Loading…
x
Reference in New Issue
Block a user