Experiment with the following tasks for segmentation based by color
Adaptive thresholding
Otsu thresholding
Lab delta segmentation
Make sure your Lab conversion is in correct data range
Select the small part of the image containing desired color and compute its Lab color model (target) - average L / a / b values
Compute delta Lab - difference image between the input and the target
Visualize
Use the obtained difference image to segment by thresholding
Clustering ( such as k-means )
Perform Grab Cut segmentation on 1 object from VOC12 Dataset.
Use OpenCV's graph cut method to refine segmentation boundary.
cv::grabCut
Input has to be BGR (3 channel)
Values for the mask parameter:
GC_BGD = 0 - an obvious background pixels
GC_FGD = 1 - an obvious foreground (object) pixel
GC_PR_BGD = 2 - a possible background pixel
GC_PR_FGD = 3 - a possible foreground pixel
An example of GrabCut algorithm: link
Note: This example uses a defined rectangle for grabcut segmentation. In our case we want to use the mask option instead - This mask can be created manually (in supervised manner) by user for this task
Perform an superpixel segmentation algorithm using following methods:
SLIC
SEEDS
LSC
Experiment with the parameters of each method and discuss the impact of these parameters.
Make an interactive approach from user input, allowing user to click each superpixel to be added or removed (split&merge) from the overall mask in order to create the segmentation mask (supervised approach)
Propose a simple method for object segmentation. Pick at least 3 images from the provided dataset. Use segmentation methods such as follows and compare results:
superpixel segmentation
floodfill
thresholding
grabcut - when using mask for grab cut processing try creating it in unsupervised or semi-supervised manner (can be done also with help of other segmentation methods mentioned here)
others
Use provided ground truth label to compute Dice Score with your prediction (you can chose only 1 specific object for segmentation in case of multiple objects presented in the image and ground truth label)
grabCut()
kmeans()
adaptiveThreshold()
floodfill()