I didn't take any class on image processing but I studied the subject based on lecture notes and important books for last three months. So at this point, I would like to sharp my image processing skills. Of course, I am practicing a lot of image processing work but the work seems to be very similar.

As a programmer, I learned a lot from top coder or similar where you can compete each other for better programming. Is there any web site I can compete for difficult image processing problems?

  • $\begingroup$ Try answering questions on this site, like dsp.stackexchange.com/q/374/29 $\endgroup$
    – endolith
    Commented Jun 15, 2012 at 10:41
  • $\begingroup$ Just because I've written a block of text does not mean I'm not still interested in other peoples approaches to (self-)learning of image processing :) Could you maybe edit and re-phrase your question so that it would be more general and ask for general tips and approaches and reference materials to start learning about image processing, ranging from a hobby interest to more serious interest in the field? I think it would be nice to have all this collected in one place. Ah and also, it would be nice if you added data about the materials you used to the question. $\endgroup$
    – penelope
    Commented Jun 16, 2012 at 16:02

1 Answer 1


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.

  • $\begingroup$ Thanks for your answer. Of course, by any mean, I am not pretending to be an expert or something like that. I am just trying to improve myself in that area. $\endgroup$ Commented Jun 15, 2012 at 15:31
  • $\begingroup$ @david I am not accusing you of anything (but ppl tell me that sometimes I come off that way :/). I am doing computer vision and image processing for almost 3 yrs now (bachelor and master) and I don't consider myself close to an expert ;) I didn't know how serious you wanted to get into it so my answer included everything... but unfortunately, I don't think you can get really good at this field without devoting (most of) your time to it. It's a big field, you might learn the basics but the really cool, novel stuff that gets developed all the time requires serious research. IMO at least... $\endgroup$
    – penelope
    Commented Jun 15, 2012 at 17:02
  • 1
    $\begingroup$ That's some answer !!! $\endgroup$
    – puffadder
    Commented Jun 15, 2012 at 19:14
  • 4
    $\begingroup$ This is a great answer. Image processing needs years and years of dedicated studies on top of good background. It's an area of engineering, and isn't at all like sitting down and learning a new programming language, which you can do very well in at most a year. $\endgroup$
    – Phonon
    Commented Jun 22, 2012 at 19:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.