I will be mentoring a gifted high school student with programming experience for 3 months, and I was hoping to get some feedback here on the most straightforward way for him to complete this goal:
-
First, an iPad/GoPro camera is used to record a video/still frames of a chemical reaction that result in bubble formation. I.e. at the beginning of the video you would see a blank background, and then later in the video a population of bubbles would exist and grow in size and number.
-
Then the iPad would be used to analyze and then to plot (# of bubbles) or (total bubble area) versus time.
(we are limiting ourselves to an iPad to test the limits of on demand mobile analytics)
Some strategies I have considered:
1) Use Pythonista with supported matplotlib/numpy modules to analyze images.
Pros: He learns to use Pythonista, the best mobile IDE (he has some experience with this already, I guess his HS has students download this)!
Cons: Without scipy, I'm not sure that the image analysis that we will run across will be entirely possible with matplotlib/numpy. I'm also not sure what limitations we will run into with the pure python modules available in Pythonista.
2) Program this analysis using a python IDE on a PC/mac and then use kivy or some other means to try and compile the code into a stand alone iOS app.
Pros: Access to scipy and other image analysis packages that are already finished. We don't have to reinvent the wheel on particle counting.
Cons: I imagine it might be a nightmare trying to successfully compile from python to a stand alone app... Maybe I'm wrong here?
3) Program the entire thing in Obj C and Swift using X Code.
Pros: He will get experience with an actual app development environment. We might be able to leverage the OpenCV framework.
Cons: The learning curve might be too high to complete within the time frame.
4) Set up a server on a windows PC that uses open source image analysis (ImageJ / Fiji) and use Pythonista to upload the relevant data (image/video) and initiate the off-site analysis.
Pros: Decouples the image processing aspect from the mobile device used.
Cons: Not sure where to look on how to connect a non-jailbroken iPad directly to a PC with bluetooth/WiFi and send it commands to initiate an analysis on the PC and have the PC send back results. This has to be done on an intranet decoupled from a shared WiFi network. Also, having a user connect to multiple wifi nodes would be a usability hassle (having to switch between the go pro and the PC/Raspberry Pi)
Ideally this would result in an ultraportable analysis tool for this specific application of measuring a reaction rate that would simply require the user to record the reaction and press analyze (either within an IDE on the iPad, or a standalone app).
Thanks for any feedback!
Cheers