code: func classifySkin(r, g, b uint32) (bool, float64) {
  	rgbClassifier := r > 95 &&
  		g > 40 && g < 100 &&
  		b > 20 &&
  		maxRgb(r, g, b)-minRgb(r, g, b) > 15 &&
  		math.Abs(float64(r-g)) > 15 &&
  		r > g &&
  		r > b
  
  	nr, ng, _ := toNormalizedRgb(r, g, b)
  	normalizedRgbClassifier := nr/ng > 1.185 &&
  		(float64(r*b))/math.Pow(float64(r+g+b), 2) > 0.107 &&
  		(float64(r*g))/math.Pow(float64(r+g+b), 2) > 0.112
  
  	h, s, v := toHsv(r, g, b)
  	hsvClassifier := h > 0 &&
  		h < 35 &&
  		s > 0.23 &&
  		s < 0.68
  
  	// ycc doesnt work
  
  	result := rgbClassifier || normalizedRgbClassifier || hsvClassifier
  	return result, v
  }
docs: // A Survey on Pixel-Based Skin Color Detection Techniques