Added scanning barcodes with a camera

This commit is contained in:
2026-03-08 16:59:33 +00:00
parent b4f8489834
commit 5a37e5dd5f
404 changed files with 224181 additions and 0 deletions

View File

@@ -0,0 +1,80 @@
# Explanation
Background knowledge and context about Quagga2. These articles explain *why* things work the way they do, providing deeper understanding beyond just how to use the library.
## Algorithm & Theory
### [How Barcode Localization Works](how-barcode-localization-works.md) ⭐ Featured
Deep dive into the computer vision algorithms that find barcodes in images. Covers:
- Binary image creation with Otsu's method
- Skeletonization
- Component labeling
- Orientation detection using image moments
- Why this approach is rotation/scale invariant
**Read this if**: You want to understand the "magic" behind barcode detection, optimize performance, or contribute to the localization code.
## Architecture
### [How Input Streams Work](input-streams.md)
Technical deep dive into the three input stream types and their initialization flow. Covers:
- LiveStream, VideoStream, and ImageStream differences
- The async initialization sequence
- Why `framegrabber` indicates init completion
- Race conditions and how to avoid them
**Read this if**: You're debugging initialization issues, dealing with React StrictMode, or want to understand the media pipeline.
### [Algorithm Overview](algorithm-overview.md) *(Coming Soon)*
High-level overview of Quagga2's processing pipeline from input to output.
### [Code Architecture](architecture.md)
Structure of the codebase, module organization, and design decisions.
## Concepts
### [Why asm.js for Skeletonization](why-asmjs.md) *(Coming Soon)*
Explanation of why performance-critical code uses asm.js and what that means.
### [Reader Design Patterns](reader-patterns.md) *(Coming Soon)*
How barcode readers are implemented and how to create custom ones.
## Differences from Other Doc Types
**Explanation** articles:
- Provide context and background
- Discuss alternatives and trade-offs
- Explain historical decisions
- Connect concepts together
- Are OK to read casually
**Tutorials**: Step-by-step learning by doing
**How-To Guides**: Task-focused, get things done
**Reference**: Precise technical specifications
## When to Read Explanations
Read these articles when you:
- Want to **understand** how things work under the hood
- Need to **debug** complex issues
- Want to **contribute** to the codebase
- Are **curious** about design decisions
- Want to **optimize** beyond basic tuning
## Contributing
Have insights to share about how Quagga2 works? We welcome explanation articles! See the [Contributing Guide](../contributing.md).
---
[← Back to Documentation Home](../index.md)