Today Hobnob and I took a look at the whole colour identification thing and now my application seems to work a lot more sensibly. Discovered the following things:
* That copy-and-paste errors will seemingly always be prevelant in my applications. If I code my application to recognise reds as pink then that's what it'll do even if I did mean to change it to say red after I pasted it.
* That the difference between the RGB values within greys can vary up to around 6% and still look grey.
* That if I return an RGB value between 0 and 1 then checking to see if it's greater than 225 will not generally return true.
Those three combined with adding some extra weighting to the middle section of an image (assuming that most people taking a picture of something will aim to have it in the middle of the picture) seem to have mostly fixed my code!