T
开头,代表是头像识别。clip
,读[klip],译为裁剪。Tclip
,意为自动头像识别的图片裁剪项目。
用于图片裁剪,有以下特点:
- 能进行人脸识别。图片中有人脸,将自动视为人脸区域为重要区域,将不会被裁剪掉。
- 自动识别其它重要区域。如果图片中未识别出人脸,则会根据特征分布计算出重区域。 总而言之,自动识别图片中的重要区域,并且在图片裁剪时保留重要区域。
- 可以加水印。
演示地址:http://demo.bo56.com/tclip
- opencv下载(建议opencv2.4.4版本) :
- tclip下载:
此扩展依赖于opencv2.0
之上版本。因此安装前先安装opencv
。
步骤如下:
-
安装依赖
yum -y install gtk+ gtk+-devel pkgconfig libpng zlib libjpeg libtiff cmake
-
下载安装 opencv2
# 下载 wget https://github.com/opencv/opencv/archive/2.4.9.tar.gz # 解压安装包 tar xvf 2.4.9.tar.gz # 进入opencv目录 cd opencv-2.4.9/ # 编译安装 cmake CMakeLists.txt make -j $(cat /proc/cpuinfo|grep processor|wc -l) make install
-
设置环境变量
cp -p /etc/profile{,.$(date +%F_%T)} # 在/etc/profile unset i前增加PKG_CONFIG_PATH grep '^PKG_CONFIG_PATH' /etc/profile||sed -i '/^unset i/iexport PKG_CONFIG_PATH=/usr/lib/pkgconfig/:/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH' /etc/profile source /etc/profile [[ -f /etc/ld.so.conf.d/opencv.conf ]] && cp -p /etc/ld.so.conf.d/opencv.conf{,.$(date +%F)} echo "/usr/local/lib/" > /etc/ld.so.conf.d/opencv.conf ldconfig
# 下载tclip
wget https://github.com/exinnet/tclip/archive/1.0.0.tar.gz
# 解压
tar xvf 1.0.0.tar.gz
# 进入php_ext
cd tclip-1.0.0/php_ext/
# 编译安装php-tclip
phpize
./configure --with-php-config=/usr/bin/php-config
make
make install
# 拷贝到php扩展目录
cp modules/tclip.so /path/to/extension/
# 修改php.ini 加入tclip
php -m|grep tclip.so||echo 'extension = tclip.so' >> /etc/php.ini
# 重启php-fpm
/etc/init.d/php-fpm restart
想使用命令行方式,可以进行如下安装
cd cd tclip-1.0.0/
chmod +x ./tclip.sh
./tclip.sh
tclip(文件原路径,裁剪后的图片保存路径,裁剪后的图片宽度,裁剪后的图片高度)
-
示例:
<?php $source_file = "/tmp/a.jpg"; $dest_file = "/www/a_dest.jpg"; $width = 400; $height = 200; $watermark_text = ""; // 可选 $ret = tclip($source_file, $dest_file, $width, $height, $watermark_text); // 裁剪成功 $ret 为 true // 裁剪失败 $ret 为 false
参数说明:
-s 原图路径
-d 裁剪后的图片保存路径
-w 裁剪后的图片宽度
-h 裁剪后的图片高度
-c 配置文件路径。
默认配置路径:/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml
-t 水印文本
-m 打开debug模式
./tclip -s a.jpg -d a_dest.jpg -w 400 -h 200
- jonnywang https://github.com/jonnywang