Inspiration

I wanted to learn something new and try out implementing a useful algorithm from a SIGGRAPH research paper.

What it does

Resize images without sacrificing details. Generally, image-editing tools allow one to crop and scale an image, which may cut out desired parts of the image. This algorithm tries to remove the pixels with the least-important "value" to the image to preserve all the important details while shrinking the total size.

How I built it

Check out the website!

Challenges I ran into

Finding a web host supporting compilation of numpy/scipy was the largest obstacle.

Accomplishments that I'm proud of

Actually getting the web interface to work! Now anyone can use it!

What I learned

A few things:

Cool things can be done relatively simply -- this was essentially an exercise in dynamic programming!

Tensorflow does not support Windows (my original plan was to use that to build something related to machine learning).

Heroku does not build and install numpy for you :(

More Flask!

What's next for SeamCarver

Optimize the algorithm. Implement the extra features mentioned in the paper (i.e., shrinking both height and width at the same time, increasing the size of the image, preserve user-defined locations like faces). Make the UI more useful (e.g., a progress bar). Asynchronously handle image resizing (I'm pretty sure it blocks the whole server right now lol).

Built With

Share this project:

Updates