|
1 | 1 | # Image-Processing-Library
|
2 |
| -Library for processing and manipulating images. |
| 2 | +Library for processing and manipulating images. Includes edge detection, color channel swapping, embossing, sharpening thresholding and more. Some of the filters are applied by using <a href="https://en.wikipedia.org/wiki/Kernel_(image_processing)">kernel convolution</a> and <a href="https://msdn.microsoft.com/en-us/library/system.drawing.bitmap.lockbits(v=vs.110).aspx">LockBits</a> while others use multithreading where applicable. |
| 3 | + |
| 4 | +# Samples |
| 5 | + |
| 6 | +The documentation below exhibits what is possible with the library. The following image will be used for the demonstrations: |
| 7 | + |
| 8 | +![alt-tag] (Samples/sample_image.jpg) |
| 9 | + |
| 10 | +## Edge Detection |
| 11 | + |
| 12 | +The library supports several different edge detection algorithms with different intensities. |
| 13 | + |
| 14 | +### Low Edge Detection |
| 15 | + |
| 16 | +![alt-tag] (Samples/edges_low.jpg) |
| 17 | + |
| 18 | +### High Edge Detection |
| 19 | + |
| 20 | +![alt-tag] (Samples/edge_high.jpg) |
| 21 | + |
| 22 | +### Horizontal Edge Detection |
| 23 | + |
| 24 | +![alt-tag] (Samples/edges_horizontal.jpg) |
| 25 | + |
| 26 | +### Vertical Edge Detection |
| 27 | + |
| 28 | +![alt-tag] (Samples/edges_vertical.jpg) |
| 29 | + |
| 30 | +## Thresholding |
| 31 | + |
| 32 | +The library supports three different thresholding algorithms. These algorithms use LockBits and multithreading and are processed much faster than the others; almost instantaneously. |
| 33 | + |
| 34 | +### Binary Thresholding |
| 35 | + |
| 36 | +![alt-tag] (Samples/threshold.jpg) |
| 37 | + |
| 38 | +### Trinary Thresholding |
| 39 | + |
| 40 | +![alt-tag] (Samples/threshold_2.jpg) |
| 41 | + |
| 42 | +### Multi-Level Thresholding |
| 43 | + |
| 44 | +![alt-tag] (Samples/threshold_3.jpg) |
| 45 | + |
| 46 | +## Blurring |
| 47 | + |
| 48 | +Different intensities of blurring are available, as well as motion blur. |
| 49 | + |
| 50 | +### Regular Blur |
| 51 | + |
| 52 | +![alt-tag] (Samples/blur_high.jpg) |
| 53 | + |
| 54 | +### Motion Blur |
| 55 | + |
| 56 | +![alt-tag] (Samples/motion_blur.jpg) |
| 57 | + |
| 58 | +## Sharpening |
| 59 | + |
| 60 | +![alt-tag] (Samples/sharpen.jpg) |
| 61 | + |
| 62 | +## Embossing |
| 63 | + |
| 64 | +![alt-tag] (Samples/emboss.jpg) |
| 65 | + |
| 66 | +## Color Channel Manipulation |
| 67 | + |
| 68 | +The library supports many different algorithms for manipulating the color channels, including swapping, removal and intensity adjustment: |
| 69 | + |
| 70 | +### Channel Swapping |
| 71 | + |
| 72 | +The color channels can be swapped in many different ways. The following image has its green and blue channels swapped: |
| 73 | + |
| 74 | +![alt-tag] (Samples/SwapGreenAndBlue.jpg) |
| 75 | + |
| 76 | +### Channel Removal |
| 77 | + |
| 78 | +Each color channel can be removed. The following image has its red channel completely dialed down to zero: |
| 79 | + |
| 80 | +![alt-tag] (Samples/RemoveRed.jpg) |
| 81 | + |
| 82 | +### Intensity Adjustment |
| 83 | + |
| 84 | +Each color channel can by dialed up or down to match the intensity of another color channel. The following image has its blue channel dialed up to match the intensity of its red channel, this creates purple where the red had high intensity: |
| 85 | + |
| 86 | +![alt-tag] (Samples/BlueToRed.jpg) |
| 87 | + |
| 88 | +## Brighten |
| 89 | + |
| 90 | +![alt-tag] (Samples/brighten.jpg) |
| 91 | + |
| 92 | +## Darken |
| 93 | + |
| 94 | +![alt-tag] (Samples/darken.jpg) |
| 95 | + |
| 96 | +## Invert |
| 97 | + |
| 98 | +![alt-tag] (Samples/invert.jpg) |
| 99 | + |
| 100 | +## Cartoonify |
| 101 | + |
| 102 | +![alt-tag] (Samples/cartoonify.jpg) |
0 commit comments