Skip to content

Commit

Permalink
Some renamings
Browse files Browse the repository at this point in the history
  • Loading branch information
Gumix committed Sep 4, 2021
1 parent e1e3aef commit 9415c95
Show file tree
Hide file tree
Showing 50 changed files with 65 additions and 61 deletions.
4 changes: 3 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@ LDIR = /opt/local/lib/
LIBS = -lc -lpng16
CFLAGS = -Wall -Wextra -Werror -O0 -g
OUT_DIR = build
LABS = lab1_1 lab1_2 lab1_3 lab1_4 lab1_5 lab1_6 lab1_7 lab1_8 lab2_1 lab2_2 lab3 lab4_1 lab4_2 lab4_3 lab5 lab6 lab7
LABS = lab1_threshold lab1_bitplane lab1_random lab1_bayer lab1_cluster \
lab1_floyd lab1_jarvis lab1_atkinson lab2_nearest lab2_bilinear lab3 \
lab4_gamma lab4_contrast lab4_equalize lab5 lab6 lab7
BINS = $(addprefix $(OUT_DIR)/,${LABS})
OBJS = $(addsuffix .o,${BINS})

Expand Down
122 changes: 62 additions & 60 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,124 +3,126 @@
Here are the programs that I wrote during the Digital Image Processing class in 2008, as well as some new experiments.

1. Grayscale to black-and-white
1. [Thresholding](#thresholding-lab1_1c)
2. [Floyd-Steinberg dithering](#floyd-steinberg-dithering-lab1_2c)
3. [Jarvis-Judice-Ninke dithering](#jarvis-judice-ninke-dithering-lab1_3c)
4. [Atkinson dithering](#atkinson-dithering-lab1_4c)
5. [Ordered dithering](#ordered-dithering-lab1_5c)
6. [Random dithering](#random-dithering-lab1_6c)
7. [Clustered dithering](#clustered-dithering-lab1_7c)
8. [Bit-plane slicing](#bit-plane-slicing-lab1_8c)
1. [Thresholding](#thresholding)
2. [Bit-plane slicing](#bit-plane-slicing)
3. [Random dithering](#random-dithering)
4. Ordered dithering
1. [Bayer dithering](#bayer-dithering)
2. [Clustered dithering](#clustered-dithering)
5. Error-diffusion dithering
1. [Floyd-Steinberg dithering](#floyd-steinberg-dithering)
2. [Jarvis-Judice-Ninke dithering](#jarvis-judice-ninke-dithering)
3. [Atkinson dithering](#atkinson-dithering)
2. Image scaling
1. [Nearest-neighbor interpolation](#nearest-neighbor-interpolation-lab2_1c)
2. [Bilinear interpolation](#bilinear-interpolation-lab2_2c)
3. [Alpha compositing](#alpha-compositing-lab3c)
1. [Nearest-neighbor interpolation](#nearest-neighbor-interpolation)
2. [Bilinear interpolation](#bilinear-interpolation)
3. [Alpha compositing](#alpha-compositing)
4. Intensity transformations
1. [Gamma correction](#gamma-correction-lab4_1c)
2. [Linear contrast stretching](#linear-contrast-stretching-lab4_2c)
3. [Histogram equalization](#histogram-equalization-lab4_3c)
5. [Convolution](#convolution-lab5c)
6. [Median filter](#median-filter-lab6c)
7. [Segmentation](#segmentation-lab7c)
1. [Gamma correction](#gamma-correction)
2. [Linear contrast stretching](#linear-contrast-stretching)
3. [Histogram equalization](#histogram-equalization)
5. [Convolution](#convolution)
6. [Median filter](#median-filter)
7. [Segmentation](#segmentation)

---
## Thresholding ([lab1_1.c](lab1_1/lab1_1.c))
## [Thresholding](lab1_threshold/lab1_threshold.c)
| Input | Output (threshold = 100) |
| ----- | ------ |
| ![Input](images/Lena.png) | ![Output](lab1_1/Lena_out_100.png) |
| ![Input](images/Lena.png) | ![Output](lab1_threshold/Lena_out_100.png) |

---
## Floyd-Steinberg dithering ([lab1_2.c](lab1_2/lab1_2.c))
| Input | Output |
## [Bit-plane slicing](lab1_bitplane/lab1_bitplane.c)
| Output (bit 6) | Output (bit 5) |
| ----- | ------ |
| ![Input](images/Lena.png) | ![Output](lab1_2/Lena_out.png) |
| ![Output](lab1_bitplane/Lena_out_6.png) | ![Output](lab1_bitplane/Lena_out_5.png) |

---
## Jarvis-Judice-Ninke dithering ([lab1_3.c](lab1_3/lab1_3.c))
| Input | Output |
| Output (bit 4) | Output (bit 3) |
| ----- | ------ |
| ![Input](images/Lena.png) | ![Output](lab1_3/Lena_out.png) |
| ![Output](lab1_bitplane/Lena_out_4.png) | ![Output](lab1_bitplane/Lena_out_3.png) |

---
## Atkinson dithering ([lab1_4.c](lab1_4/lab1_4.c))
| Input | Output |
## [Random dithering](lab1_random/lab1_random.c)
| Input | Output (threshold = 100, noise = 40) |
| ----- | ------ |
| ![Input](images/Lena.png) | ![Output](lab1_4/Lena_out.png) |
| ![Input](images/Lena.png) | ![Output](lab1_random/Lena_out_100_40.png) |

---
## Ordered dithering ([lab1_5.c](lab1_5/lab1_5.c))
## [Bayer dithering](lab1_bayer/lab1_bayer.c)
| Input | Output (4x4 Bayer matrix) |
| ----- | ------ |
| ![Input](images/Lena.png) | ![Output](lab1_5/Lena_out_4.png) |
| ![Input](images/Lena.png) | ![Output](lab1_bayer/Lena_out_4.png) |

---
## Random dithering ([lab1_6.c](lab1_6/lab1_6.c))
| Input | Output (threshold = 100, noise = 40) |
## [Clustered dithering](lab1_cluster/lab1_cluster.c)
| Input | Output |
| ----- | ------ |
| ![Input](images/Lena.png) | ![Output](lab1_6/Lena_out_100_40.png) |
| ![Input](images/Lena.png) | ![Output](lab1_cluster/Lena_out.png) |

---
## Clustered dithering ([lab1_7.c](lab1_7/lab1_7.c))
## [Floyd-Steinberg dithering](lab1_floyd/lab1_floyd.c)
| Input | Output |
| ----- | ------ |
| ![Input](images/Lena.png) | ![Output](lab1_7/Lena_out.png) |
| ![Input](images/Lena.png) | ![Output](lab1_floyd/Lena_out.png) |

---
## Bit-plane slicing ([lab1_8.c](lab1_8/lab1_8.c))
| Output (bit 6) | Output (bit 5) |
## [Jarvis-Judice-Ninke dithering](lab1_jarvis/lab1_jarvis.c)
| Input | Output |
| ----- | ------ |
| ![Output](lab1_8/Lena_out_6.png) | ![Output](lab1_8/Lena_out_5.png) |
| ![Input](images/Lena.png) | ![Output](lab1_jarvis/Lena_out.png) |

| Output (bit 4) | Output (bit 3) |
---
## [Atkinson dithering](lab1_atkinson/lab1_atkinson.c)
| Input | Output |
| ----- | ------ |
| ![Output](lab1_8/Lena_out_4.png) | ![Output](lab1_8/Lena_out_3.png) |
| ![Input](images/Lena.png) | ![Output](lab1_atkinson/Lena_out.png) |

---
## Nearest-neighbor interpolation ([lab2_1.c](lab2_1/lab2_1.c))
## [Nearest-neighbor interpolation](lab2_nearest/lab2_nearest.c)
| Input | Output (N = 5, cropped) |
| ----- | ------ |
| ![Input](images/Lena.png) | ![Output](lab2_1/Lena_out_5x_crop.png) |
| ![Input](images/Lena.png) | ![Output](lab2_nearest/Lena_out_5x_crop.png) |

---
## Bilinear interpolation ([lab2_2.c](lab2_2/lab2_2.c))
## [Bilinear interpolation](lab2_bilinear/lab2_bilinear.c)
| Input | Output (N = 5, cropped) |
| ----- | ------ |
| ![Input](images/Lena.png) | ![Output](lab2_2/Lena_out_5x_crop.png) |
| ![Input](images/Lena.png) | ![Output](lab2_bilinear/Lena_out_5x_crop.png) |

---
## Alpha compositing ([lab3.c](lab3/lab3.c))
## [Alpha compositing](lab3/lab3.c)
| Input | Output |
| ----- | ------ |
| <ul><li>[Goldhill.png](images/Goldhill.png) as top</li><li>[Lena.png](images/Lena.png) as bottom</li><li>[Peppers.png](images/Peppers.png) as alpha channel</li></ul> | ![Output](lab3/Goldhill_Lena_Peppers_out.png) |

---
## Gamma correction ([lab4_1.c](lab4_1/lab4_1.c))
## [Gamma correction](lab4_gamma/lab4_gamma.c)
| Input | Output (c = 1.0, gamma = 0.6) |
| ----- | ------ |
| ![Input](images/House.png) | ![Output](lab4_1/House_out_1.0_0.6.png) |
| ![Input](lab4_1/House_in_hist.png) | ![Output](lab4_1/House_out_1.0_0.6_hist.png) |
| ![Input](images/House.png) | ![Output](lab4_gamma/House_out_1.0_0.6.png) |
| ![Input](lab4_gamma/House_in_hist.png) | ![Output](lab4_gamma/House_out_1.0_0.6_hist.png) |

| Input | Output (c = 1.5, gamma = 1.5) |
| ----- | ------ |
| ![Input](images/House.png) | ![Output](lab4_1/House_out_1.5_1.5.png) |
| ![Input](lab4_1/House_in_hist.png) | ![Output](lab4_1/House_out_1.5_1.5_hist.png) |
| ![Input](images/House.png) | ![Output](lab4_gamma/House_out_1.5_1.5.png) |
| ![Input](lab4_gamma/House_in_hist.png) | ![Output](lab4_gamma/House_out_1.5_1.5_hist.png) |

---
## Linear contrast stretching ([lab4_2.c](lab4_2/lab4_2.c))
## [Linear contrast stretching](lab4_contrast/lab4_contrast.c)
| Input | Output (delta = 1000) |
| ----- | ------ |
| ![Input](images/Auto.png) | ![Output](lab4_2/Auto_out_1000.png) |
| ![Input](lab4_2/Auto_in_hist.png) | ![Output](lab4_2/Auto_out_1000_hist.png) |
| ![Input](images/Auto.png) | ![Output](lab4_contrast/Auto_out_1000.png) |
| ![Input](lab4_contrast/Auto_in_hist.png) | ![Output](lab4_contrast/Auto_out_1000_hist.png) |

---
## Histogram equalization ([lab4_3.c](lab4_3/lab4_3.c))
## [Histogram equalization](lab4_equalize/lab4_equalize.c)
| Input | Output |
| ----- | ------ |
| ![Input](images/Goldhill.png) | ![Output](lab4_3/Goldhill_out.png) |
| ![Input](lab4_3/Goldhill_in_hist.png) | ![Output](lab4_3/Goldhill_out_hist.png) |
| ![Input](images/Goldhill.png) | ![Output](lab4_equalize/Goldhill_out.png) |
| ![Input](lab4_equalize/Goldhill_in_hist.png) | ![Output](lab4_equalize/Goldhill_out_hist.png) |

---
## Convolution ([lab5.c](lab5/lab5.c))
## [Convolution](lab5/lab5.c)
| Input | Output ([11x11 blur](kernels/Blur_11.txt) kernel) |
| ----- | ------ |
| ![Input](images/Lena.png) | ![Output](lab5/Lena_out_Blur_11.png) |
Expand All @@ -134,13 +136,13 @@ Here are the programs that I wrote during the Digital Image Processing class in
| ![Input](images/Peppers.png) | ![Output](lab5/Peppers_out_Sobel_v.png) |

---
## Median filter ([lab6.c](lab6/lab6.c))
## [Median filter](lab6/lab6.c)
| Input | Output ([3x3 plus](apertures/Plus_3.txt) aperture) |
| ----- | ------ |
| ![Input](images/Goldhill_sap.png) | ![Output](lab6/Goldhill_sap_out_Plus_3.png) |

---
## Segmentation ([lab7.c](lab7/lab7.c))
## [Segmentation](lab7/lab7.c)
| Input | Output (threshold = 128) |
| ----- | ------ |
| ![Input](images/Numbers.png) | ![Output](lab7/Numbers_out_128.png)<br>12 segments |
Expand Down
File renamed without changes
File renamed without changes.
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes.
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes.
File renamed without changes
File renamed without changes.
File renamed without changes
File renamed without changes.
File renamed without changes
File renamed without changes.
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes.
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes.
File renamed without changes
File renamed without changes.
File renamed without changes
File renamed without changes.
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes.
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes.
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes.

0 comments on commit 9415c95

Please sign in to comment.