A review of mean-shift algorithms for clustering