Marc Eftimie, Anmol Sandhu, Chang Jun Park, Venkadesh Eswaranandam
This project is a implementation and extension of Julie Jiang's image segmentation project, undertaken as a learning exercise for Olin's Discrete Mathematics course in Fall 2023. Our aim was to gain hands-on experience in image segmentation techniques and graph theory applications. We have adapted and expanded upon Julie's original work by incorporating networkx for graph operations and developing our own version of the augmenting path algorithm, aligning with the course's focus on discrete mathematical principles.
- Augmenting Path Implementation:
nx_augmenting_path.py- This module contains the implementation of the augmenting path algorithm usingnetworkx. It is based on Julie's original implementation. - User Input Handling:
nx_user_input.py- Handles user inputs for selecting seed points on the image. - Image to Graph Conversion:
nximage2graph.py- Converts images into graph representations for processing. - Custom Augmenting Path Algorithm:
our_nx_augmenting_path.py- Our custom implementation of the augmenting path algorithm. - Algorithm Comparison and Benchmark:
benchmarking/- A comparison of multiple different image segmentation algorithms (K-means, N-cut, SLIC, and Mean-shift) and their runtime, using theskimagelibrary.
- Install the required packages using
pip install -r requirements.txt. - Run the program using
python main.py.