An Android implementation of visible light communication. See report here.
- Import project in Android Studio
- Add:
ndk.dir=[path/to/ndk]
tolocal.properties
- Download folder
OpenCV-2.4.10-android-sdk
and place in root of project
- Run
sample.m
to generatevmimo.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. native.cpp
connects 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 make
, then ./simulator
.
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-compile
when 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
app/src/main/java/com/android/visualmimo/MainActivity.java
.
- 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