"Picca"- An image processing application for mobile devices


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Log Book

The table below represents the log book for this project which consists of entries about specific dates of the work carried out for this project so far. The log book will get updated on a constant basis as I make more progress on the project.

Date

Description

22-02-2013

Enrolled in Btech 451A and awaited reply from co-ordinator.

6-03-2013

Had a meeting with Mano to discuss the project that was assignment to me. The project involved enhancing the software called LabView.

8-03-2013

I arranged a meeting with Fred and she showed me around her physics lab where the PhD. student carried out the image acquisition via lasers and a film. Patrice also came along to observe the issue with Labview as well as gave a few solutions. I noted down the camera models and started my research on their drivers.

9-03-2013

I contacted Patrice regarding the project and informed him of the problems with the project as Fred wanted me to develop a whole new software that will consist of same features as Labview and it is not possible.

14-03-2013

I informed Mano of the problems with the project and I wanted to choose another project. He agreed so I met up with Patrice to discuss my project.

15-03-2013

I started working on the presentation for my new project and started gathering more information from Patrice.

18-03-2013 to 26-03-2013

I worked on my presentation for these days

27-03-2013

I presented my project ‘Picca’ at Tamaki Campus in front of Mano and others. I also tried setting up my project website but the permission was denied due to an IT issue.

10-04-2013

I installed the Android SDK on Eclipse so I could start my project and run it on the emulator

11-04-2013

I started designing the interface and also began work on my project website at home.

12-04-2013

I uploaded a test page for my website and it worked so now I will upload the rest of the website on there.

20-04-2013

I uploaded parts of my website today and will be updating the website as I make more progress on the project.

22-04-2013 to 25-04-2013

 

I created prototypes of the Picca application using Balsamiq Mock Up Tool to give me an idea of the design and layout of the application. This took me a couple of days to become familiar with the software and then I came up with initial designs of the application. The images of the designs are attached in the Mid year report, Mid year presentation and the Image Gallery on this website.

29-04-2013

I re-checked my designs and noticed that the 3 columns of images caused the grid to be larger than usually expected on the screens that size. Therefore, I changed the columns from 3 to 4 and also decreased the size of the grid. The images of the final designs are attached in the Mid year report, Mid year presentation and the Image Gallery on this website.

3-05-2013

After finishing the prototypes, I decided to begin programming of the project and completed a few tutorials on the start-up screen for Android platform.

6-05-2013

I do not own an Android phone and so I am using the Android Virtual Device (AVD) which emulates the mobile device. I was able to set up the AVD (check mid-year report) with the parameters I was happy with and but was not able to execute the test application. The AVD constantly failed on execution.

9-05-2013

I managed to get help from a demonstrator in compsci labs about the error and we were able to fix the problem.

15-05-2013 to 23-05-2013

I managed to get the homescreen to work which basically had the "Search box" and a "Search button". I also made a start on the mid-year report and was able to use reports from previous years as a guide to start mine off.

25-05-2013

Finished slides for the mid-year presentation by using previous students' presentation format from last year.

28-05-2013

The mid-year presentation times clashed with another of my course so I contacted Mano and Patrice about it and they made the presentations earlier which helped me reach for both presentations on time.

2-06-2013

I emailed Patrice my presentation slides to review and he gave me feedback on what information to include about the filters.

7-06-2013

I made a Google Doc for Patrice to keep track of my work and we decided to have it updated on the weekly basis. I also finished my mid-year report and uploaded it on the website for Mano to assess.

10-06-2013 to 27-06-2013

Study leave and exams.

1-07-2013 to 10-07-2013

I researched on the layout of the homescreen and struggled to find many examples of the media items embedded in the layout. However, I did come across "GridLayout" layout feature for Android applications that allows the use of media in a grid-type-layout.

14-07-2013

After some discussion with Patrice, he offered to provide me with the camera package that would allow me to capture the image using the camera.

15-07-2013

I started working on my MainActivity.java and started dealing with 'intent' tutorials and how to start an Activity in Android. I also started research on a coloured bitmap can be modified by splitting the RGB values. I also configured the layout of MainActivity using the .xml file. Added a buttons, Step1, Step2 and Exit.

17-07-2013

I figured out how to start the Camera Package using my MainActivity and it allowed me to capture two images and save them in a folder called `Picca` on external storage such as SD card.

19-07-2013

After some though, the GridLayout at the start would use processing resources for no reason as it would load images from a file location because the user would not need it if they wish to capture images through camera and therefore I decided that GridView should only be implemented once the user clicks a button to select images from a location.

21-07-2013

I added code for Exit button which allows the user to close the application safely and then updated the activityOnResult() in the MainActivity.

25-07-2013

Before I create an activity that deals with all the modifying of the images, I need to figure out a layout that I want and create an xml file which I can use to set the View.

29-07-2013

As mentioned before the GridLayout would waste a lot of processing resources if it loaded images everytime the user opens the application and therefore, I could not proceed with the initial mockups of Picca. Also the filter screen would need some change as the 3-4 filters in a single view without scrolling would be inefficient.

2-08-2013

I decided that the filters would include a ScrollView and then they would be located on the left hand side in a "column" and the rest of the screen will be covered by the image to be filtered.

4-08-2013

Came up with new mock up designs and they didnt overwhelme the user like the previous ones. I also though that this application will work better for Android devices with screensize of 4" to 8".

5-08-2013

The emulator was too slow to test the application and therefore I decided to buy an Android device to speed up the process of testing and debugging.

7-08-2013

Next I started adding ImageView and buttons so that my EditPicturesActivity layout would match the one in my mockup design.

8-08-2013

After researching I found a way to split the RGB values so that I can modify coloured images. Then started creating Filter classes. I started with easy filter which would increase Brightness and Contrast of an image. The formula was available from cs373 course site and was relatively easy to get it done. Once that was completed, I used the path of the captured or selected images and load them in the ImageView of the EditPicturesActivity class so that the user is able to see the image before and after being modified.

12-08-2013 to 30-08-2013

During this time I implemented around 10 filters and tested them to see if they were giving accurate results. Also I had problems with the devices and therefore I had to buy another one. The application kept on crashing when I tried adding some extra features and caused the device to act up and crash everytime as well. I succesfully finished the implementations of the filters. Once presented to Patrice, he said that the user should be able to apply filters on top of each other and therefore with minor modification to the project, I was able to make that happen.

1-09-2013 to 5-09-2013

Next I started looking for a way to re-use most of the code to design filters and came across a matrix called Convulation Matrix which allows the users to create new filters (as long as they are based on that algorithm) by designing new kernels of odd size. It took me a while to get this working because of the re-usuability factor but once it was working, I was able to design filters just by finding kernels online and implementing them. All of this included in depth in my end of year report.

7-09-2013 to 15-09-2013

In this time period, I developed more filters and checked if they worked. Also started adding buttons which are commonly used in image processing on the ImageView itself but with a transparent finish. Next I started finding tutorials that involve getting a file from certain location on the device and how I can implement a Grid type layout once the user clicks that button. I spend quite a bit of time trying to find a solution to see if I can select two images using one button but this was not possible unless I create a custom gallery that will let me do so.

16-09-2013 to 20-09-2013

But before I create a custom gallery (with the GridLayout) I need to make sure that the images do load into the ImageView once they are selected from a location. I made two buttons, each will select one image and then the user can click on the Apply Filters button. The application kept crashing everytime I clicked Apply Filters button and so I am trying to figure out the solution and once that is figured out, I will implement a custom gallery or just implement simple grid layout depending on the time.

24-09-2013 to 2-10-2013

In this time I started adding everything to my report. First I checked reports from past few years to check the layout and format of the report. I started with fixing everything up from the mid year report and updated it to the current development specifications. The mid year report contained a lot of information in the programming section of the report which was not needed so that was removed and replaced.

4-10-2013 to 10-10-2013

I asked Mano for some feedback regarding my report and he suggested a few layout improvements and also to update some of the content. Majority of that was done during this time. Patrice was able to have a look at the report aswell.

12-10-2013 to 1-11-2013

During this time, I updated my report with conclusion and evaluation and finished off the references. I have also prepared the presentation for the end of year seminar. The error for the load image button is still occuring but will keep trying to fix it or else I will add that as an improvement in the evaluation.