48 lines
1.5 KiB
Markdown
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.
|
|
|