I'm very interested in learning about algorithms in photography (in particular processing photos). In addition to algorithms, I'm interested in learning about photo formats (probably RAW and jpeg the most).

I basically want some good starting points for being able to start writing my own photography-related software and to better understand how existing software works. Examples might include things like noise reduction, combining images for hdr, cloning/healing, adjusting exposure, filters, etc.

(As a side note, are there popular toolkits or libraries that a lot of people use for writing software like this or is everyone reinventing the wheel :-)?)

  • 1
    You could look at the source code for the GIMP and RawTherapee. In any case, this is off-topic and should be closed, as it relates more to programming as well as image processing in general than as a part of photography.
    – bwDraco
    May 24, 2012 at 10:05
  • Please see the FAQ: photo.stackexchange.com/faq#dontask Without even considering if it's on-topic, this question is just way too big.
    – mattdm
    May 24, 2012 at 10:31
  • @mattdm: I don't see how it's off topic. How is this "way too big"? How is it any different from any of the other numerous questions about "where do I start learning photography" such as this: photo.stackexchange.com/questions/16/… (and many others you can find). Just because this has to do more with the technical side of photography, I think this is perfectly reasonable to ask here. It would certainly help others who are more interested in post processing and such.
    – Tom
    May 24, 2012 at 14:36
  • Also, when I want to ask hardcore programming questions about a specific algorithm... then I'll go over to the tech stack exchanges. I don't think this is one of those. We have allowed questions like this: photo.stackexchange.com/questions/13775/… mine is just a little more general "Where do I start learning about this stuff".
    – Tom
    May 24, 2012 at 14:37
  • Ok... I'm reading photo.stackexchange.com/faq now which has more direct guidelines. I'd like to think this is not a specific programming or image manipulation questions. This is more of "how does lightroom work?" which I think is valuable. If this isn't the site I should be asking this, where should I ask this because I think it's a good questions that is worth having an answer for.
    – Tom
    May 24, 2012 at 14:40

1 Answer 1


Download the ImageMagik code (http://www.imagemagick.org/script/index.php) and start reading through the source. That should get you started on image manipulations.

The download lcms (http://www.littlecms.com/) to get a handle on how to manipulate color spaces.

These two toolkits are very popular, I used both of them myself for imaging software.

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