I hope you realize (from the form of your question, I think you do) that three months of reading up about it doesn't really make you an image processing expert.
I am familiar with topcoder, but while the difficulty of the problems and approaches that you needed to use there might be similar to those of image processing problems, to design a usable image processing application: do problem specific research, implement your findings and new ideas, test it to get reliable results, you need much more than a couple of hours (or even a week as for the topcoder marathon match).
If you want to just learn more about the basic image processing tools I suggest you:
- take all your literature, random-open a page and study and implement the concept explained there
- take a computer vision library such as OpenCV, or work in matlab, take some images, and try using and displaying various image processing methods on them (from simple morphology to more complicated things like Hough line detection). Try and predict results, graphically display them, and understand what you get.
If you are interested in specific problem in image processing (e.g. I am doing Content based image retrieval - CBIR right now -- and by that I mean, almost for the last 5 months), and want to get better in this specific topic, then my advice would be something like:
- search google scholar, Mendeley article database, IEEEXplore for relevant works on the subject
- download way too many papers, maybe 3-5 as many as you are prepared to read. Skim abstract, intruduction and conclusion sections and filter out the articles that sound relevant and interesting. Give priority to current (recent) articles, as well as articles with current references.
- read all of that. Read the most important ones more than once. The one that will be the basis of your work is expected to have margins filled with your scribblings and to look at least a little bit scrappy by the time you finish your 5th read-through.
- implement that. Go from simple, straightforward implementation to the optimized implementation.
- before you start doing this, ensure that you have a dataset for testing. Testing is not relevant if it is not done on a large enough dataset. Some works mention the datasets they are using, or their datasets can be found on affiliated university websites.
- there are public datasets (e.g. this one for object classification) that also organize annual challenges where you can test your new ideas against many peoples new ideas (but that's way bigger than topcoder :D)
- if you get decent results, that's good. If you get better results than state-of-the art using some of your new ideas, double check them. Then triple check them. And then publish a fancy article ;)
I'm sure you can find a middle between just learning something about image processing just for fun and doing real time-consuming research from what I wrote... Actually, here's an idea: hang around here and try to understand and help to solve other people's problems! All of them need research-think-apply steps, they just vary with the depth of the steps they require ;) In any case, I hope it helps.