Skip to content

ezhang887/seam_carver

Repository files navigation

Seam Carver

Seam Carver is an openFrameworks desktop application that performs various seam carving operations.

It currently supports removing seams, adding seams, generating a GIF of the carving process, and face detection.

See the project proposal and documentation for more details on how the algorithm works.

Note: This project was created and only has been tested on Ubuntu 16.04

Dependencies:

The only dependencies are openFrameworks addons. See addons.make and this link for more details.

  • ofxGui was used to create most of the graphical components in the windows. This should come with your installation of openFrameworks. All the other dependencies need to be manually downloaded.
  • ofxCv was used to enable face detection.
    • Note: I had an issue initially with building ofxCV, and applied this to fix the build issues.
    • Note: ofxOpenCv was not actually used in any way, but for whatever reason, I needed to add it to my addons.make for ofxCv to compile properly.
  • ofxGif was used to create, save, and load gifs.
  • ofxProgressBar was used to create the loading bar in the main winow.

Steps to run:

  1. Install openFrameworks.
  2. Install dependencies.
    • Clone the Github repositories of the non-official addons (ofxCv, ofxGif, ofxProgressBar) to your OF_ROOT/addons directory. Make sure they are also all added in addons.make.
  3. Make sure the configurations in config.make are set properly (specifically make sure OF_ROOT actually points to the root directory of your openframeworks installation.
  4. Build the application by running make in the project root directory. You should now see output from the project building.
  5. Run the application by running make RunRelease in the project root directory. The main application window should now open.

Screenshots:

Here are some screenshots of the main window.

Here is a comparison of the original image to the carved image. The original was 700x394, and the carved is 550x400.

Here is a gif showing the seam carving process of the above image.

Gif

Here is a comparison of an image carved with (right) and without (left) face detection, with the original image (top) shown. When face detection is enabled, the seam carving algorithm will not choose any seams that intersect with the detected face. Although the carved image with face detection is not perfect, it looks much better than the one without face detection.