Calling remove_shadows() on an image without a background source of truth image now works. However, that said, the shadow remover isn't suitable for anything other than removing shadow on an image of concrete flow or somthing of the like. In general, it can only remove shadows from a scene that has nothing else in it except for a hard edge shadow. Improving this to work for anything is about a month of work. I've researched enough about shadow removal to now know the optimal way to do it. However, it requires many steps and a large amount of RAM. On the H7 I may revist this as being possible. ... In order to get the shadow remover working well I had to add a few features to the image library and fix some of the convolution code. These fixes will likely be more useful than the shadow removal code. Note the addition of the new get_threshold() method. This computes otsu's threshold on a histogram allowing you to pick the optimal color bounds. |
||
|---|---|---|
| .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