Я пытаюсь работать над чем-то, что может определить, имеет ли загруженная фотография простой фон. Я использую imagecolorat()
, используя случайные точки выборки в месте. Загруженные фотографии являются стандартными фотографиями крупным планом на уровне плеч. Я проверяю цвет пикселей в определенных местах изображения - где-то на заднем плане возле области уха (человека).
С результатами imagecolorat()
я смог получить цвет RGB точек. Затем я преобразовал их в HSV.
Как я могу определить, похожи ли цвета? Поскольку фотографии могут не обязательно иметь точные цвета в пикселях образца, мне нужно установить некоторый уровень допуска, чтобы разрешить похожие цвета< /сильный>. Например, #3A34B9
и #524EB4
должны быть в порядке, потому что они просто синие с разными значениями HSV, но находятся рядом друг с другом.
Что я должен проверять в значениях HSV? Иногда серые объекты имеют очень отчетливый оттенок, но они по-прежнему оба серые и должны пройти тест.
Я не публикую какой-либо код прямо сейчас, потому что у меня проблемы не с кодом, а с алгоритмом как я могу правильно определить, какие фотографии имеют простой фон, а какие нет.
На самом деле это не распознавание лиц, и мне интересно, возможно ли это с PHP, но также поможет знание того, как я могу улучшить точки выборки из загруженной фотографии. В настоящее время я делю фотографию только на области и получаю точки из определенных областей (около 1/6 и 5/6 оси X и 1/3 оси Y).