seam-carving/README.md

48 lines
1.5 KiB
Markdown

# Seam Carving
Augustin Lucas, François Colin de Verdière
Git repo: [https://gitea.augustin64.fr/m1-ENSL/seam-carving](https://gitea.augustin64.fr/m1-ENSL/seam-carving)
The report is available as PDF file [report.pdf](report.pdf)
## References:
- [Seam carving for content-aware image resizing](https://perso.crans.org/frenoy/matlab2012/seamcarving.pdf)
## Build
```bash
mkdir -p build # Create build dir if needed
cd build
cmake .. # Update build/Makefile
make # Compile
cd ..
```
## Usage
```bash
build/seam-carving ...
```
Mandatory arguments:
- `-s FILE`: source image
- `-o FILE`: output image
Options:
- `-m FILE`: the mask. RGB image, of the same size than the source, red pixel are those to be removed, the green ones must be kept.
- `-n NUMBER`: number of seams to compute or remove (default 0)
- `--show-seams`: do not carve the image, only outputs the energy and the relevant seams
- `-f FUNCTION NAME`: the energy function to use, see the [beginning of the source file to see the available functions](src/seam-carving.cpp)
- `-u`: when a mask is provided and no seam number is provided, remove seams until the zone to remove has disappeared.
- `--vertical`: use vertical seam (horizontal by default)
- `--max-step`: maximum number of step (distance between two pixel to be removed in two consecutive rows)
## Generation of the images of the report
A `Makefile` is provided at the root of the repo, it can be used to generate the images that are shown in the report.