Зачастую в проектах возникает необходимость нахождения графических образов на загружаемых пользователями фотографий. Для джедаев программирования можно посоветовать реализовать алгоритм поиска нужного образа на родном языке, для всех остальных подойдет библиотека по имени OpenCV. Данная библиотека обладает довольно таки широким функционалом, вплоть до поиска лиц в видеопотоке, но мы рассмотрим поиск лиц на фотографии на PHP. Сама OpenCV написана на C/C++, что позволяет думать о её шикарной производительности, но в PHP мы её напрямую не сможем использовать, для этого возьмем экстеншн для PHP под названием PHP Facedetect.
1. Удостоверяемся, что у нас стоят все зависимости
Для корректной работы всей системы нам понадобятся:
- pkgconfig
- libpng
- zlib
- libjpeg
- libtiff
- python
2. Ставим OpenCV
Либо через pecl, либо через apt-get в Debian, либо из исходников.
3. Собираем и устанавливаем PHP Facedetect Extension
Качаем исходник отсюда, компилируем по инструкции в архиве и добавляем в PHP командой “phpize && ./configure && make && make install”.
4. Проверяем работу OpenCV в PHP
var_dump(face_count('party.jpeg', 'cascade.xml')); var_dump(face_detect('party.jpeg', 'cascade.xml'));
Функции нам возвращают количество лиц на фото их координаты. А больше-то и не надо для нашей задачи:)
Вот что у нас получается в итоге:
Вот так, нет ничего проще. Трудно будет обладателям не VPS-хостингов, которым доступ к конфигурации ОС и PHP ограничен.



16 августа, 2010 16:41
Спасибо, интересно! Будем читать дальше.
http://infoprog.tk – программирование для начинающих и программирование для чайников