Image Segmentation

In this assignment you will work on the program that performs image segmentation using region growing algorithms. Image segmentation is a process of partitioning a digital image into multiple segments. Usually, the segmentation simplifies the image and makes it easier to analyze. The segments supposed to represent meaningful regions of the original image. Region growing approach is a simple approach to image segmentation. It starts with the user selected seed points and grows each of them into a region based on a region membership criterion. In this project a seed is a single pixel and the membership criterion is based on the gray level values of the pixels. The goal of this project is for you to master (or at least get practice on) the following tasks: • implementation of a reference based stacks, • implementation of a reference based queue. • implementation of an algorithms based on their descriptions, • working with existing code, • implementing generic classes. You are given the program that performs image segmentation. The implemented algorithm is based on the depth first searchapproach to region growing. This solution needs to use a stack to keep track of the pixels that need to be visited and evaluated.Currently it is using the stack implementation from the Java API. Your first task is to provide your own reference based stackimplementation.The depth first search algorithm for creation of a single region from a seed is as follows: