An Android implementation of visible light communication. See report here.
Setup - Android
- Import project in Android Studio
- Download folder
OpenCV-2.4.10-android-sdkand place in root of project
Setup - MATLAB
vmimo.avi. It's short so run it looping:
mplayer -loop 0 vmimo.avi.
C++ code is in
app/src/main/jni/. The CV logic is in
image_processing.cpp, with the NDK abstracted out.
image_processing.cpp to the Android code, and
simulator.cpp allows developing CV algorithms without any Android by simulating the flow of images and corners from the Android code.
To run on a computer,
cd to the
jni directory and run
The test bench is in
bench (currently in the analytics branch). The project uses Maven, so you must right click on it > Configure > Make Maven Project (Eclipse, assuming Maven project installed). It utilizes VLCj to do video outputs, and directly references the server-side image generation.
- At the time of writing, Android Studio / gradle support for NDK is limited to projects that don't include libraries. The gradle config thus disables the NDK compile and manually runs
ndk-compilewhen building the project.
- The Android project was based on an old Vuforia sample, so large parts of it are super ugly. If you want to add a UI element or feature, look at
- Play with new new embedding methods
- Clean up MATLAB code a lot
- Figure out how to draw on Android screen to display information
- Chromecast pairing demo