Ваш алгоритм является простым пороговым цветом. Это будет работать только для очень базового набора условий. Для нескольких изображений это может дать действительно хорошие результаты, но как общий детектор это даст плохие результаты.
Ваша первая линия атаки должна состоять в том, чтобы переключиться на другую цветовую модель, которая не зависит от освещения. На самом деле, ссылка, которую вы даете явно говорит об этом! Например, HSI. Лично я бы предпочел сделать что-нибудь с L * a * b *, но реализация преобразования из RGB была бы более сложной.
Вы должны посмотреть на добавление некоторых дополнительных предыдущих терминов, например, изолированные пиксели не могут быть скинами.