views:

238

answers:

4

Hi,

I am looking for some information on pixel processing. I am interested in the following algorithms:

  • Gamma correction
  • Edge detection
  • Changing overall brightness
  • Converting to grayscale
  • etc.

Where can I find articles that have a description of how this can be achieved?

Thanks.

+3  A: 

Codes from my blog. It's turkish but C# is universal :)

1 - 2 - 3 - Results

Ahmet Kakıcı
And if you need theoretical information check this web site (EN) http://homepages.inf.ed.ac.uk/rbf/HIPR2/wksheets.htm
Ahmet Kakıcı
A: 

Where can I find articles that have a description of how this can be achieved?

Have you heard of google? I'd start there.

Seriously, some of these (grayscale conversion, brightness, gamma correction) are all very straightforward.

Personally, I would pick grayscale conversion and brightness adjustment and try and implement them myself.

FOREACH scanline
  FOREACH pixel
    pixelvalue = F(pixelvalue)

All you need to do is work out what F() might be. Experiment with some different functions to understand the effects that you get, and you'll have a good idea of what you need.

For the more complex algorithms (edge detection), I'd start on wikipedia.

Roddy
I've already done this.
Ilya
@ilya - then say so in your question. What was wrong with the answers that you got?
Roddy
+6  A: 

Most of these are pretty easy.

A classic book for such things is Computer Graphics Principles and Practice. Its not cheap though.

Wikipedia has some good explanations though

Gamma correction
Edge Detection though its also worth looking into highpass filtering

Changing brightness is a bit more subjective and very much connected with gamma correction, imo.

As for grayscale convert .. it can't be easier. You could just take the average of the r, g & b channels. However this doesn't correct for the fact that we see green better than other colours. The "luminance" of an RGB image can be calculated simply by doing (0.3 * r) + (0.59 * g) + (0.11 * b). As you can see that biases the apparent luminance heavily by green with blue giving far less contribution, which is how our eyes work :)

Goz
+2  A: 

Image Processing Fundamentals is useful to get a theoritical understanding of image processing algorithms.

Also efg's huge archive of links on Image Processing, although some of the links may not work any more.

and OpenCV is a good library which implements most image processing algorithms. Here you can find a good series of tutorials on it.

Indeera