You can now allocate an extra frame buffer for storing images. However, this takes memory from the main frame buffer. In particular this reduces the RAM for many methods that do image processing making memory errors more likely to happen. Note that you may allocate as many extra fb's as you like. Dealloc happens in reverse order. Anyway, you can use this method to now storage things like difference images in RAM allowing for MUCH faster frame difference image processing. Moving on, to keep memory management sane... the second fb looks just like an image and you can use all the image methods to load and update it, etc. That said, if users deallocate the second FB they need to *NOT* use the image pointer anymore. There's no way for me to delete the image pointer in python right now so this is just something that has to be manually managed (even if I did setup a deconstructor the second FB is on a stack... so, things wouldn't work so easily with that). |
||
|---|---|---|
| .github | ||
| eagle | ||
| firmware | ||
| src | ||
| udev | ||
| usr | ||
| util | ||
| .gitignore | ||
| .gitmodules | ||
| CHANGELOG.md | ||
| LICENSE | ||
| README.md | ||
OpenMV (Open-Source Machine Vision)
The OpenMV project aims at making machine vision more accessible to beginners by developing a user-friendly, open-source, low-cost machine vision platform.
OpenMV cameras are programmable in Python3 and come with an extensive set of image processing functions such as face detection, keypoints descriptors, color tracking, QR and Bar codes decoding, AprilTags, GIF and MJPEG recording and more. Additionally, OpenMV includes a cross-platform IDE (based on Qt Creator) designed specifically to support programmable cameras. The IDE allows viewing the camera's frame buffer, accessing sensor controls, uploading scripts to the camera via serial over USB (or WiFi/BLE if available) and includes a set of image processing tools to generate tags, thresholds, keypoints etc...
The first generation of OpenMV cameras is based on STM32F ARM Cortex-M Digital Signal Controllers (DSCs) and Omnivision sensors. The board has built-in RGB and IR LEDs, USB FS for programming and video streaming, uSD socket and I/O headers breaking out PWM, UARTs, SPI and I2C. Additionally, OpenMV supports extension modules (shields) using the I/O headers such as WiFi, BLE, Thermal (FIR) and LCD shields.
The OpenMV project was successfully funded via Kickstarter back in 2015 and has come a long way since then. For more information, please visit https://openmv.io