Wednesday, June 28, 2006

"Image Processing Lab in C#"

The CodeProject - Image Processing Lab in C#

"Image Processing Lab is a simple tool for image processing, which includes different filters and tools to analyze images. It’s easy to develop your own filters and to integrate them with the code or to use the tools in your own application.

The following filters are implemented in the library:


  • Color filters (grayscale, sepia, invert, rotate, channel extraction, channel replacing, channel filtering, color filtering, Euclidean color filtering);
  • HSL filters (linear correction, brightness, contrast, saturation, hue modifier, HSL filtering);
  • YCbCr filters (linear correction, YCbCr filtering, channel extraction/replacement);
  • Binarization filters (threshold, threshold with carry, ordered dithering, Bayer dithering, Floyd-Steinberg, Burkes, Jarvis-Judice-Ninke, Sierra, Stevenson-Arce, Stucki dithering methods);
  • Automatic binarization (simple image statistics);
  • Mathematical morphology filters (erosion, dilatation, opening, closing, hit & miss, thinning, thickening);
  • Convolution filters (mean, blur, sharpen, edges, Gaussian);
  • 2 Source filters (merge, intersect, add, subtract, difference, move towards, morph);
  • Edge detectors (homogeneity, difference, sobel, canny);
  • Blob counter, connected components labeling;
  • Pixellate, simple skeletonization, jitter, shrink, oil painting;
  • Levels linear filter, gamma correction;
  • Median filter, adaptive smoothing, conservative smoothing;
  • Resize and rotate;
  • Texture generators based on Perlin noise;
  • Texture filters (texturer, textured filtering, textured merging);
  • Fourier transformation (lowpass and hipass filters).

..."

This is a very cool project. It provides many image processing/filter functions that you would expect to see in a commercial product, yet this is free and includes the C# source.

It’s also a "live" project, having been updated a number times since early 2005...

(Via dotNetKicks - Image Processing Lab in C#)

1 comment:

Anonymous said...

Image Processing Lab is based in AForge.Net and it is great!
You can use free AForge.Net. A great free open source imaging library for .Net.
If you are interested in learning how to exploit multicore processors to speed up image processing using AForge.Net, you will find a great example using AForge.Net and multithreading to improve the performance in working with images and with multicore CPUs, in the book " C# 2008 and 2005 Threaded Programming: Beginners Guide", by Gaston Hillar, Packt Publishing - www.packtpub.com
It includes many exercises related to image management with multicore support. Highly recommended if you want to improve performance and UI responsiveness.
You can download the code from Packt's website. http://www.packtpub.com/beginners-guide-for-C-sharp-2008-and-2005-threaded-programming/book

There is also an article in Packt's website: http://www.packtpub.com/article/simplifying-parallelism-complexity-c-sharp

I bought the book last week and it helped me a lot in my image processing needs. Now, I can split an image in many parts using the code from the book and I can make it exploit my Core 2 Quad. My boss is impressed!