⚡️ Seam Carver
March 2022
Intelligently shrinks photos by removing the visually 'least interesting' seam. Uses content-aware image resizing algorithm to compress the image to its most important details; unlike cropping, entire parts of the image aren't lost. Created for Accelerated Fundamentals of Computer Science 2.
👩🏻💻 Development
I created this as a class project — the goal was to get practice implementing a complex algorithm and creating an interactive user interface. This project was daunting at first but taught me a lot about image compression and was very satisfying to complete.
The first version of this project only removed seams without giving the user any controls. My partners and I revised it to display the seam being removed in red and give the user the ability to pause the animation. The user can also choose to remove only horizontal or only vertical seams by typing "h" or "v" respectively.
Removing horizontal seams
Removing vertical seams
💡 Future Ideas
If I ever have a chance to revisit this project, there's a good amount I would change. First, the code itself is all in one large file that is pretty hard to understand so I'd start by putting each class in its own file. Additionally, there's some redundancy — we have some pairs of functions that handle vertical and horizontal seams separately, but these should be abstracted into one.
Functionality wise, it would be cool to add the ability to add seams back in. I also think the ability to export a modified photo would be cool. Ideally, I'd like to combine this functionality with my Image Processor project since it's a useful image manipulation technique.