2

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 :-)?)

Tom
  • 3,149
  • 6
  • 31
  • 37
  • 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 '12 at 10:05
  • Please see the FAQ: http://photo.stackexchange.com/faq#dontask Without even considering if it's on-topic, this question is just way too big. – mattdm May 24 '12 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: http://photo.stackexchange.com/questions/16/what-are-the-first-few-photography-books-someone-should-read (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 '12 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: http://photo.stackexchange.com/questions/13775/what-algorithms-or-example-tools-are-there-for-denoising-of-images-in-raw-format mine is just a little more general "Where do I start learning about this stuff". – Tom May 24 '12 at 14:37
  • Ok... I'm reading http://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 '12 at 14:40
  • Right, all of those "where do I start learning photography" questions are also not good fits either — many of them are sort of grandfathered-in. The question about RAW denoising algorithms is more specific and so is better. Note that I'm not trying to argue with you; it's just the mission and character of the site. See the other comments and votes, and nominations-to-close this question has gotten. And again, read the faq section I linked to — this is not just a whole book, but a whole university curriculum! – mattdm May 24 '12 at 14:40
  • I don't think it's necessarily off-topic. But ask about the specific things you're interested in, in answerable bite-sized chunks, rather than asking for resources-for-it-all. Good resources change so frequently and are so subjective that usually a search engine is the best way to find them. – mattdm May 24 '12 at 14:44
  • FWIW, I don't think the question is OT. However, it could be made more specific and written more as a question, in the spirit of Photo.SE. You have a few pointers for software available for learning source code. If you have Matlab available with Image Processing toolbox, then you can examine the relevant m-files as well. As for image formats, RAW is usually manufacturer specific, but DCRaw can expose some popular options. Also putting your hand on the JPEG standard can teach you all you need on JPEGs. – ysap May 24 '12 at 18:08
  • This question isn't off-topic as you aren't asking highly technical questions (details about algorithms implementation for example) and this site has already (IMO) more technical questions that this. In this site however they consider your question as too broad which may make sense but doesn't fit for real life. Programmers sometimes feel that they want to learn something new that they feel it'll make them happy but they're not sure where to start so they ask questions like this. Like How can I start learning Java, or C++? and you'll find questions like this on stack overflow – K'' May 25 '12 at 02:52
  • but I do agree that more focused questions are useful than these type of questions for later reference. But these kind of questions as yours don't hurt (IMO) cause lot of other people (programmers) will look for this question. It's natural for a programmer who loves photography to start looking into the internals of photography from his technical area because he thinks that this will make him a better programmer, and it may be true as an example Thomas Knoll the author of Adobe Photoshop and photographer was a hobby for him. – K'' May 25 '12 at 03:02
  • while you can still ask this question on stack overflow and you should do this anyway even if you got good answers here (because photo exchange is full with programmers) it's good to have the question here because you are trying to get what you want from both sides: Programming & Photography. – K'' May 25 '12 at 03:09
  • @Tom: I think your questions have merit, however this one in particular is too broad. I recommend asking some new questions that specifically target certain aspects of the broader question your are asking here. For example, you could ask questions about specific RAW formats, such as Canon CR2 or Nikon NEF, but it would be better to ask a separate question for each raw file type you are interested in, rather than one general "How do RAW files work?" question. When you narrow down your questions, it makes it easier for people who have specific knowledge to provide detailed answers. – jrista May 27 '12 at 16:49
  • I'm going to close this as "too broad", however don't take that as a cue to stop asking the questions you have. If you need more detailed information about RAW image formats, we are definitely a better place for those questions to be asked than StackOverflow, for example. We can even help you with some RAW-processing specific algorithms, since the technical folks here are probably more versed in how RAW files work than anyone at SO. However try to refrain from asking general programming or algorithmic questions here. If it directly relates to photography, we are ok with it. – jrista May 27 '12 at 16:52

1 Answers1

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.

Paul Cezanne
  • 6,468
  • 4
  • 34
  • 67