// the find
nihui/opencv-mobile
The minimal opencv for Android, iOS, ARM Linux, Windows, Linux, MacOS, HarmonyOS, WebAssembly, watchOS, tvOS, visionOS
opencv-mobile is a trimmed-down build of OpenCV for Android, iOS, ARM Linux, Windows, WebAssembly and more, with the default modules stripped and the image IO layer swapped for stb. It is aimed at embedded and mobile developers who need OpenCV's core and imgproc without shipping a 300 MB Android package. The build pipeline is in the open, so you can rebuild your own variant from `options.txt`.
The size numbers are real: the Android package drops from 303 MB to 25 MB and the source zip from 81.9 MB to 9 MB. Every binary is built from source in GitHub Actions via `release.yml`, which makes the 'no backdoor' claim checkable rather than a promise. The patch set is organised per OpenCV version (2.4.x through 5.0.0), and the cmake option files are split out per version, so the build is reproducible. Dropping RTTI and exceptions is a deliberate size choice, and the README says so plainly.
Removing highgui's GUI and video IO means `imshow` only works on Linux framebuffer and Windows, and `VideoCapture` on mobile has to be handled by the platform APIs yourself. The `putText` CJK path depends on a generated bitmap font header, so you need to regenerate it whenever your text changes. Disabling RTTI and exceptions breaks any library or code that uses `dynamic_cast` or `try`/`catch`, and the README only mentions this in passing. The project is a single maintainer with a long tail of board-specific toolchains, so support for any one of those is only as good as the last CI run.