- Set up the table with the balls already on it
- Detect if a ball enters a pocket and declare it a 'hit'
- Use the position and angle of the cue
- Maybe incorporate the strength of the hit
- Maybe calculate the best shot and rank possible 'hit's
- Pass information to the Server
Wednesday, 30 November 2011
Next stages for the Physics Engine
The program needs to be evolved so it can:
Monday, 28 November 2011
PHP accepting FIle
The code which is responsible for sending the file to the server sends the file to a PHP file
Apache Tomcat doesn't run PHP
Within the MAC OS X operating system, there is the Apache HTTP sevrer which does run PHP but not by default, it must be turned on within the operating System
The Code was tested and worked for sending the file from the Phone to the server but the file is not displayed on the server
More work needs to be done on the server side script for the file.
A screenshot of the file upload working is shown below:
Apache Tomcat doesn't run PHP
Within the MAC OS X operating system, there is the Apache HTTP sevrer which does run PHP but not by default, it must be turned on within the operating System
The Code was tested and worked for sending the file from the Phone to the server but the file is not displayed on the server
More work needs to be done on the server side script for the file.
A screenshot of the file upload working is shown below:
Wednesday, 23 November 2011
Progress on GUI
Due to Other Exam and Coursework Commitments progress on the GUI has been slowed, but this week is back on full speed.
I have been previously on the idea of a JSP form to upload an image manually, this has been created and has been taken one step further because now the uploaded image is passed into a prototype of the image analysis algorithm.
I have also found some open source code on how to send a file automatically from an android app, after fiddling with the code, it now sends a file to the server, but, so far, i havent been able to get the server side script to work which means the file isnt accepted, this is where i am spending most of my time in trying to get the image to send. I feel that this is an important part of the project.
Chris
I have been previously on the idea of a JSP form to upload an image manually, this has been created and has been taken one step further because now the uploaded image is passed into a prototype of the image analysis algorithm.
I have also found some open source code on how to send a file automatically from an android app, after fiddling with the code, it now sends a file to the server, but, so far, i havent been able to get the server side script to work which means the file isnt accepted, this is where i am spending most of my time in trying to get the image to send. I feel that this is an important part of the project.
Chris
Monday, 21 November 2011
Integrating File Upload with the Image Processing
The idea of the file upload was that it could then be passed to the Image Processing Algorithm
The first idea was to change the filename in the algorithm to match the uploaded file but this proved too complicated.
So, everyfile which was uploaded to the server was named the same and it would be overwritten everytime a file was sent to the server.
The file was sent to the algorithm but no new files created, the permissions need looking into
Chris
The first idea was to change the filename in the algorithm to match the uploaded file but this proved too complicated.
So, everyfile which was uploaded to the server was named the same and it would be overwritten everytime a file was sent to the server.
The file was sent to the algorithm but no new files created, the permissions need looking into
Chris
Sunday, 20 November 2011
Ball Detection
There were 2 possible ways of detecting the balls:
A vertical search is run for a white pixel then it continues searching for the next white pixel, it calculates the distance between them and this gives the diameter.
The search then moves to the centre of these two white pixels and searches left and right. If these measurements are the same as the vertical diameter, then the centre point is established.
- Using the Hough Transform and
- By searching for white pixels in own algorithm
A vertical search is run for a white pixel then it continues searching for the next white pixel, it calculates the distance between them and this gives the diameter.
The search then moves to the centre of these two white pixels and searches left and right. If these measurements are the same as the vertical diameter, then the centre point is established.
Tuesday, 15 November 2011
Group Presentation
The group is set to make our presentation on 30th of November at 10:55 so now we are all concentrating on preparing our presentation and figuring out what we are going to say.
Grace
Grace
Hough Transform
This is used for finding straight lines in an image. Instead of using Cartesian coordinates it uses polar coordinates to find straight lines on the image.
The Hough Transform can only be executed after the edge detector has been implemented.
Code by Edinburgh university was adapted for the relevant implementation.
http://homepages.inf.ed.ac.uk/rbf/HIPR2/hough.htm
http://homepages.inf.ed.ac.uk/rbf/HIPR2/flatjavasrc/Hough.java
In the first tests, the Hough lines were drawn incorrectly. This could be due to the Hough matrix being wrong or the drawing of the Hough lines is wrong.
The Hough Transform can only be executed after the edge detector has been implemented.
Code by Edinburgh university was adapted for the relevant implementation.
http://homepages.inf.ed.ac.uk/rbf/HIPR2/hough.htm
http://homepages.inf.ed.ac.uk/rbf/HIPR2/flatjavasrc/Hough.java
In the first tests, the Hough lines were drawn incorrectly. This could be due to the Hough matrix being wrong or the drawing of the Hough lines is wrong.
Monday, 14 November 2011
Uploading File to Server
Code was found at http://reecon.wordpress.com/2010/04/25/uploading-files-to-http-server-using-post-android-sdk/
This code sends a file to a server using methods within the android sdk.
This could be integrated into the application so that when a photo was taken, the file was sent to the server.
Chris
This code sends a file to a server using methods within the android sdk.
This could be integrated into the application so that when a photo was taken, the file was sent to the server.
Chris
Sunday, 13 November 2011
Running of the application
The application takes an image after 5 seconds and stores it in the correct location at a file size idea for the server.
Problem
When the timer is started and the XML screen is 'quitted' either by going back to the menu or leaving the app, the app crashes after 5 seconds as the thread for the timer is not correctly stopped.
Done:
Problem
When the timer is started and the XML screen is 'quitted' either by going back to the menu or leaving the app, the app crashes after 5 seconds as the thread for the timer is not correctly stopped.
Done:
- Background removal
- Edge detection
- Simple application to take an image after a timer
Friday, 11 November 2011
Starting to develop the Physics Engine
The first stage in developing the Physics Engine from the collisions code found during the research was to remove any extrac functions such as the control panel, the ball scattering and the fact that the colour changes with the velocity.
Wednesday, 9 November 2011
File Upload Problem
After research and work it was found that a File form cannot be autopopulated from a dynamic URL
This is due to security reasons in the JSP development. If it were allowed files could be taken from the users computer by the user just pressing a link.
Form has been returned to origanal state where the file is manually uploaded
Chris
This is due to security reasons in the JSP development. If it were allowed files could be taken from the users computer by the user just pressing a link.
Form has been returned to origanal state where the file is manually uploaded
Chris
Further research for the Physics Engine
Looking to expand on the previous model, through further research I found a different program in an article on Stack Overflow:
This uses round objects that collide with each other and the walls which can be adapted to suit the project specifications but needs a lot of work.
Tuesday, 8 November 2011
Using the Camera
The camera application already contained on the phone cannot have a timer to set automatically and then take an image.
A possible solution is to use a surface view with a camera preview. Open source code can be found by the blogger Android-er which implements this:
http://android-er.blogspot.com/2010/12/add-overlay-on-camera-preview.html
This method does not affect the predefined camera settings and can easily be adapted to incorporate a timer and specific resolution settings.
A possible solution is to use a surface view with a camera preview. Open source code can be found by the blogger Android-er which implements this:
http://android-er.blogspot.com/2010/12/add-overlay-on-camera-preview.html
This method does not affect the predefined camera settings and can easily be adapted to incorporate a timer and specific resolution settings.
Saturday, 5 November 2011
Physics Engine Research
The blog http://beginwithjava.blogspot.co.uk/ has several simple collision tutorials that introduce java methods.
This is a good tutorial:
and should help in the development of the physics engine. It may be a good idea to produce a graphical representation of the pool game in order to ensure that it is behaving as predicted
This program contains a moving object (the green square) colliding with the walls of the window as well as the green square.
This program contains a moving object (the green square) colliding with the walls of the window as well as the green square.
Wednesday, 2 November 2011
Physics Engine Prototype Review
It was only designed to be a basic program but it allowed straight collisions and didn't account for the walls of the pool table or whether the pockets were in a realistic position.
However, the program was able to receive values for the coordinates of the balls, cue, and pockets from the GUI, perform the calculations, and then inform the GUI section whether the shot will be a hit or a miss.
However, the program was able to receive values for the coordinates of the balls, cue, and pockets from the GUI, perform the calculations, and then inform the GUI section whether the shot will be a hit or a miss.
Subscribe to:
Posts (Atom)