1227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin HendricksCopyright 2013 The Android Open Source Project 2227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks 3227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin HendricksLicensed under the Apache License, Version 2.0 (the "License"); 4227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricksyou may not use this file except in compliance with the License. 5227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin HendricksYou may obtain a copy of the License at 6227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks 7227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks http://www.apache.org/licenses/LICENSE-2.0 8227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks 9227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin HendricksUnless required by applicable law or agreed to in writing, software 10227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricksdistributed under the License is distributed on an "AS IS" BASIS, 11227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin HendricksWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin HendricksSee the License for the specific language governing permissions and 13227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendrickslimitations under the License. 14227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks 15227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks 16227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin HendricksSmart Camera / Auto Snapshot (formerly named SimpleCamera) ReadMe 17227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks 18227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin HendricksCreated by: Benjamin W Hendricks 19227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks 20227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin HendricksHow to build the application: 21227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin HendricksFrom root: make SmartCamera will build the apk for generic 22227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin HendricksOtherwise, to build the application for a specific device, lunch to that device 23227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricksand then run mm while in the SimpleCamera directory. 24227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin HendricksThen take the given Install path (out/target/.../SmartCamera.apk) 25227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricksand run adb install out/target/.../SmartCamera.apk. The application should 26227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricksthen appear in the launcher of your device. 27227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin HendricksYou might also need to run adb sync after building to sync the 28227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendrickslibsmartcamera_jni library 29227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin HendricksSummarized: 30227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks make SmartCamera 31227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks adb remount 32227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks adb sync 33227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks adb install -r $ANDROID_PRODUCT_OUT/data/app/SmartCamera.apk 34227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks 35227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin HendricksHow to run the application: 36227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin HendricksOn a Nexus 7, open up the application from the launcher, and the camera preview 37227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricksshould appear. From there, you can go to the gallery with the gallery button or 38227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendrickspress start to start capturing images. You can also change the number of images 39227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricksto be captured by changing the number on the spinner (between 1-10). 40227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks 41227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin HendricksWhat does it do: 42227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin HendricksThe application tries to take good pictures for you automatically when in the 43227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricksstart mode. On stop, the application will capture whatever images are in the 44227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricksbottom preview and save them to the Gallery. It does this by looking at the 45227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricksfollowing image features: 46227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks - Sharpness 47227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks - Brightness 48227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks - Motion of the device 49227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks - Colorfulness 50227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks - Contrast 51227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks - Exposure (over/under) 52227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks 53227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin HendricksBy comparing each of these features frame by frame, a score is calculated to 54227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricksdetermine whether an image is better or worse than the previous few frames, 55227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricksand from that score I can determine the great images from the bad ones. 56227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks 57227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin HendricksWhat libraries does it use: 58227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks- Mobile Filter Framework (MFF) 59227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks- Camera2 API 60227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks- Renderscript 61