5
$\begingroup$

I am a student of computer science with interest in image processing. I have learned how to apply a few effects to images like making them grayscale, sketching them out of lines, etc.

I would like to learn more about the algorithmic techniques behind creative manipulation of images like making them sepia-tone, smudging them, etc.

Can someone please point me in the right direction? How do I learn the fundamentals of these algorithms?

$\endgroup$
  • $\begingroup$ @DaveClarke It is about algorithms that go behind them. There must be some literature to learn that. $\endgroup$ – Little Child Jun 30 '13 at 11:47
  • $\begingroup$ @Kaveh They migrated it here lol .. Somehow this question seems to be an outcast on every stack site related to computers. I have no idea where to ask lol $\endgroup$ – Little Child Jun 30 '13 at 14:17
  • 1
    $\begingroup$ Because you keep asking them where they are off-topic. If you are interested in graphics you should probably post them on Photography or Graphic Design. If you are interested in algorithms for image multiplication (not programs!) then it might be OK here. It might be part of Computer Graphics or Vision (Image Processing). You better take a look at a book or course on those topics if that is what you want. If you want to write programs to manipulate image then you should post it on Stack Overflow. But right now it is clear what you are looking for. $\endgroup$ – Kaveh Jun 30 '13 at 21:35
  • 1
    $\begingroup$ Don't include images unless really necessary. The image you have included here does not add anything to the question. $\endgroup$ – Kaveh Jun 30 '13 at 21:37
  • 1
    $\begingroup$ The algorithms behind image processing are fascinating and I feel are within the scope of this SE. $\endgroup$ – user8872 Jul 1 '13 at 12:52
5
$\begingroup$

There are books on digital image processing which you can look into. Many common image manipulation techniques, such as smudging (usually known as blurring) are accomplished by image filtering, which is a process of applying a two-dimensional filter to an image: the value of each pixel in the new image is a linear combination of its original value and the original values of its neighbors. Sepia tone is an example of color manipulation: assuming the image is stored as RGB, this amounts to applying some carefully constructed mapping on the R,G,B values of each pixel. The mapping can be represented as a table $\{0,\ldots,255\}^3 \to \{0,\ldots,255\}^3$, or alternatively some formula can be applied instead.

$\endgroup$
  • $\begingroup$ The resource is awesome !! Do you have more resources that I can learn from ? :-) $\endgroup$ – Little Child Jul 1 '13 at 7:11
  • $\begingroup$ I found these resources using google. I'm sure the internet has many more in store. $\endgroup$ – Yuval Filmus Jul 1 '13 at 15:01
  • $\begingroup$ I found one: pegtop.net/delphi/articles/blendmodes $\endgroup$ – Little Child Jul 1 '13 at 16:40
3
$\begingroup$

I have been working on that very same thing recently, albeit for a very different purpose. Asides from SO, I have been referring to Google code examples, and forums related to the platform and language that I am working in. Sometimes, I found some information and techniques from Image Processing Online.

One technique that I found was particularly helpful, was to outline the processes that I wanted to do first and research each major programming decision, testing it as I go.

I hope this helps.

$\endgroup$
  • $\begingroup$ outline the processes that I wanted to do first and research each major programming decision By this you mean to chalk out what I want to accomplish, jot them down and work on them rather than doing haphazard work ?? :-) $\endgroup$ – Little Child Jul 1 '13 at 7:12
  • 1
    $\begingroup$ @LittleChild - well, I just wanted to state what I did. $\endgroup$ – user8872 Jul 1 '13 at 7:33
3
$\begingroup$

What you are referring to is not a branch of just image processing, but specifically digital image processing.

Also, linear filtering should help a bit.

$\endgroup$
2
$\begingroup$

you seem to be interested in image enhancement techniques such as used on Instagram to add "cool effects". these algorithms tend to be somewhat more advanced and proprietary. however for basic image manipulation which is the underlying basis for these algorithms, there are many places to start. here are a few:

  • Image processing basics tutorials with java applets.

  • Image processing basics tutorial Zip files of many tutorials. the overall site has a comprehensive list of resources eg books.

  • CMSC 426 Image processing U Maryland/Jacobs 2003 there are many university classes some with very good online notes/resources

  • Image processing in MATLAB Matlab is a leading mathematical package for image processing and math packages can simplify many algorithms. another leading package for image manipulation is Mathematica.

  • Coursera, now a leading online course site, has a course on Image and video processing by Sapiro/Duke university.

  • another option for the hacker types is taking an open source image processing program and reverse-engineering the code, ie learning the algorithms by looking at code and/or tweaking it. Gimp is a very full featured open source image processing program with many advanced effects, some as "plugins".

note most image techniques have many fundamental connections to linear/matrix/vector algebra and thats an important mathematical area to study for basic background.

$\endgroup$
  • $\begingroup$ Also check out the one I found. It's in the first answer :) $\endgroup$ – Little Child Jul 2 '13 at 16:27
1
$\begingroup$

If you already know the name of some specific image processing technique, Wikipedia has pretty good explanations -- such as "closing" in morphological image processing.

The computer vision wiki is a good place to read and write about computer vision stuff that doesn't fit into an encyclopedia format -- HOWTOs, example code, etc.

There exist many "type this, click there" tutorials on how to get a specific effect with a specific piece of software -- GIMP Tutorials, Kdenlive/Video effects, MATLAB Image Processing Toolbox, etc.

Many universities have classes in image processing or computer graphics or both; a few have an entire department dedicated to image processing. Some of them even have a web site that has lots of information about image processing. A few even record class lectures and post them online.

$\endgroup$
  • 2
    $\begingroup$ A book recommendation to go with these courses: Richard Szeliski - Computer Vision: Algorithms and Applications is available for free on the book's website at szeliski.org/Book $\endgroup$ – confusopoly Jul 4 '13 at 14:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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