This project focuses on build a solution for getting an optimal image scratch replacing result. It segments the original image to numerous small chunks, and then replace each chunk with most similar image in a given library, thus to get a "Mosaic" effect.
Example:
Source image

Algorithm Pipeline:
- Generate the color histogram features for all the library images and save them into local files.
- Segment the source image into initial small chunks and merge them into larger chunks if possible.
- Find the best-match image in library for each chunk in the source images based on color histogram similarity.
Progress:
- Used PCA to reduce dimensions for color histogram features to reduce computation workload during finding best-match image for each chunk.
Next steps:
- Use more efficient way to search for best-matching image.
- Use markup language (e.g. .xml) files to configure the project.
- Build API for Python or other script languages.
Personal note: Use the following command to get the number of lines of code: git log --author="wangzyusc" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -
