Skip to content

AlessandroSaviolo/Shadow-Detector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Shadow Detector

This work is the final project for the course Computer Vision that I attended during my master degree at Department of Information Engineering (Padova, Italy). See report.pdf for the report containing the description of the presented algorithm and the analysis of the produced results.

The purpose of this project is to implement a shadow detector.

1. Assumptions

The shadow detector is developed under the following assumptions:

  • One strong source of light (dataset images are all outdoor images where the only source of light is the sun)

  • Focus on ground shadows

2. Dataset

The following datasets have been used to test the performances of the proposed method:

3. Methodology

The features considered by the shadow detector for the comparison of different segments of the image are intensity, color information and texture.

To better present the different steps that compose the proposed algorithm, the output produced by each step is illustrated. In particular, the following image is considered:

Steps:

  1. Preprocessing: filters are applied to the image in order to get better results in the segmentation step

  1. Segmentation: 𝑘means is used to segment the image

  1. Intensity thresholding: image is converted to HSV color space and the intensity channel is thresholded

  1. Candidates computation: segments belonging to the white components of the thresholded image (at point 2) are selected as shadow candidates

  1. Candidates merging: “similar” candidates are merged (the illustrated matrix is used to identify candidates that need to be merged)

  1. Candidates comparison: candidates are compared with their non-candidate neighbors and selected as shadow based on chromaticity and texture

After computing these 5 steps, the algorithm outputs the detected shadows:

4. License

Copyright (C) 2021 Alessandro Saviolo

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.