Computer Vision - Seam Carve Image Resizer
C++
Project details
Description
- The learning goals of this project include Testing, Debugging, Pointers, Arrays, Strings, Streams, IO, and Abstract Data Types (ADTs) in C.
- Gained practice with C-style pointers, arrays, and structs.
- uses seam carving for content-aware resizing of images. The algorithm works by finding and removing “seams” in the image that pass through the least important pixels.
-
Project Components
- Implemented a struct to represent an image. This struct includes metadata (e.g., dimensions) and a 2D array to store pixel values.
- Created a helper Matrix ADT
- Implemented a function to calculate the energy of each pixel in the image. The energy of a pixel is a measure of its importance.
- Implemented a function to find the seam with the least total energy. Used retracing to find a seam, which is a connected path of pixels from top to bottom (vertical seam) or left to right (horizontal seam).
- Implement a function to remove the identified seam from the image. This function should shift the pixels and update the image dimension.
- Implement functions to read images from files and write resized images to files. Also created a command line interface.
-
Start Date:
Sep. 10th, 2023 -
End Date:
Sep. 25th, 2023 -
Github:
Private -
Course:
EECS280 -
Course Topic:
DSA
7+
Years of Coding Experience
25
Completed CS Projects
3+