How might I refresh high school level mathematics and extend it much further? I did well at Mathematics at school (top 0.1% in the country, approximately), however I stopped studying it when I was 16. Since then I've studied a couple of highly specific mathematics modules in university (primarily matrix manipulation) however these weren't taught clearly. 
My current mathematical knowledge only really amounts to addition, subtraction, multiplication, division (not long division), fractions, decimals, percentages, and a bit of algebra. And the odd things about angles, but just the basics. I have certainly studied further than that, but I need a serious refresher! 
I'd like to progress from this fairly basic level to having a solid mathematical understanding, with a view to both improve myself as a programmer and to meet the requirements to start a Masters degree in Computer Vision/Imaging in two years. (While this is my specific goal, I'd also enjoy learning mathematics in general for myself.) 
I'd ideally like to learn from a textbook or other written resource (I find it much easier to read than to listen to an explanation) and I'd ideally like some problems to solve to ensure I understand the material. I'm happy to buy a textbook (or several), but where to start? 
Summary - 
Progress from basic high school level -> Computer Vision/Imaging related mathematics. 
Written resources rather than video. Happy to buy a textbook. 
 A: I know you said that you rather have written resources, but http://www.khanacademy.org/ contains loads of video lectures about high school mathematics.
Once you worked your way up the basics you should check the undergrad math section on MIT open courseware, which contains video lectures but most of the time the syllabus is included!
A: I can relate to what you probably instinctively know. That is to be fluent in mathematics requires a knowledge on the basics. I would suggest you take some time out and throughly go through a pre calculus book. In particular one that relates the fundamentals of algebra to calculus concepts. Whilst tedious, the varied ways of solving problems, should become like touch typing. Thus allowing you to be creative when it gets to things like complex numerical analysis.
A: Specific to your professional goals, I would consider buying a book on matrix algebra or linear algebra. For an auto-dydact, learning the fundamentals of linear algebra from the point of view of matrices will be a bit easier. Also, you'll see it grounded in traditional arithmetic first. Probably, Schaum's outline of matrix algebra will work nicely. In general, Schaum's are well-written, but they can be replete with typos, be aware.
A: I don't have any book recommendations but I can tell you what subjects you will eventually need to learn:


*

*Calculus

*Linear algebra

*Probability

*Machine learning

*Differential geometry


The first three you definitely should know before you start; the last two you can learn once you get your foot in the door. I also suggest consulting the syllabi of good schools.
A: I suggest you look at "Math Overboard" written by a former mathematics professor (me). There are 2 volumes, covering all school math, kindergarten to 12th grade and beyond. The website http://www.mathoverboard.com gives details. 
