Multifunctional Camera App(MCA)
Shouyan Li
a camera app which have multiple functions including apply filters, share image and object detection
Demo Video and App description
The main camera function is implemented with the relatively new CameraX Api provided by google. The exposure compensate function and zoom in/out function used "camera control()" from the Api. The designed tap-to-focus function, which is tried but I didn't make it to work due to a lack of documentation of such as the "meteringpointfactory" in java language, was substituted with the zoom function. The face detection was implement with google ml kit along with the code provided in HW2.
The google map API, GPS along with locationservice, and Geodecoder is used to get the current city name, which is used in the geomarker function. In terms of the image editing, I decided that I can directly apply color matrix on the bitmap of the image instead of using a much more complicated OpenCV API. From the demo we can see that the brightness function works fine but the contrast adjustment doesn't provide a great results, also when moving the seek bar, the app responses slowly, thus meaning the bitmap manipulation method could be optimized, however, I haven't found better solutions yet.
Firebase real-time database was planned to be used for storing the image on cloud. However unlike just sending a string of card number in HW3, the bitmap is too large to be sent to real-time database. Therefore an service intent which can open the phone gallery and choose images is used to make up the missing designed function.
Another difficulty is editing the image chosen from the gallery, which will be subtitled to the previously taken image when I try to edit it. Hours of work have been devoted to solve the problem but nothing have been done. The next step would be trying to put the image in the shared preference when choosing the image. Also, a new method which including generating new bitmap and canvas need to be created to include the geomarker in the bitmap which can be saved locally.
API for the app:
Functionalities:
•Focus and Exposure control
•Face and Object Detection
•Image Brightness and Contrast Adjustment
•Apply color filters to images
•Upload Images to Firebase and Save Image to local storage
•Share Image to social app
•Add a Geo Marker to Image
Demo UI
Weekly Update
Week 1 ( Nov 8 2021 - Nov 14 2021 )
Decided the goal, functionalities, API used and demo cases for the App
Presentation for the project
Created a demo UI
Week 2 ( Nov 15 2021 - Nov 21 2021 )
Start the building of the project
Built basic camera function
Week 3 ( Nov 22 2021 - Nov 28 2021 )
Implement color /brightness / contrast with bitmap manuplation instead of using open cv
Week 4 ( Nov 29 2021 - Dec 5 2021 )
Implement the Face/obejct recognication function with ML kit