资讯专栏INFORMATION COLUMN

MacOS 安装 PHP的Tclip扩展实现更好的缩略图

SwordFly / 1040人阅读

摘要:图片中有人脸,将自动视为人脸区域为重要区域,将不会被裁剪掉。自动识别其它重要区域。如果图片中未识别出人脸,则会根据特征分布计算出重区域。源码地址安装根据上的说明,在上安装没有问题,但在我的上就挂了。首先遇到的问题就是,安装不过去。

Tclip 用于图片裁剪,有以下特点:

能进行人脸识别。图片中有人脸,将自动视为人脸区域为重要区域,将不会被裁剪掉。

自动识别其它重要区域。如果图片中未识别出人脸,则会根据特征分布计算出重区域。
总而言之,自动识别图片中的重要区域,并且在图片裁剪时保留重要区域。

源码地址:https://github.com/exinnet/tclip

安装opencv

根据github上的说明,在CentOS上安装没有问题,但在我的MacOS上就挂了。

首先遇到的问题就是,opencv安装不过去。还好,上github下载最新的opencv-2.4.11 安装成功。

下载地址:https://github.com/Itseez/opencv/releases

使用当前最新版本 OpenCV 2.4.11

安装依赖

在安装opencv之前,先安装一些依赖包:

brew install gtk+  pkgconfig libpng zlib libjpeg libtiff cmake

提示: brew的安装使用请参考 http://brew.sh/

安装opencv

开始安装 opencv:

tar zxf opencv-2.4.11.tar.gz
cd opencv-2.4.11
cmake CMakeLists.txt 
make && make install 
安装php tclip

先下载:https://github.com/exinnet/tclip/archive/master.zip

然后继续:

unzip tclip-master.zip 
cd tclip-master/php_ext
phpize
./configure

如果不出意外,到这一步,应该就挂掉了,提示:

checking for opencv.pc file in default path... found in /usr/lib/pkgconfig
found in /usr/local/lib/pkgconfig
configure: error: no result from pkg-config opencv --libs --cflags opencv

在 Tclip 作者的页面上 http://www.bo56.com/tclip%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E5%9B%BE%E7%89%87%E8%A3%81%E5%89%AA/#download

评论中,也有网友遇到了类似的问题,提出修改办法为:

将 config.m4 中的 判断语句test ${i:${#i}-3} = “.so”,改为 test ${i:${#i}-6} = ".dylib”,并尝试将46行的.so 也改称 .dylib 

依然提示no result的错误~

再翻翻config.m4的代码和执行 pkg-config opencv --libs --cflags opencv的输出结果:

-I/usr/local/include/opencv -I/usr/local/include -L/usr/local/lib -lopencv_calib3d -lopencv_contrib -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_gpu -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_nonfree -lopencv_objdetect -lopencv_ocl -lopencv_photo -lopencv_stitching -lopencv_superres -lopencv_ts -lopencv_video -lopencv_videostab

感觉怎么对不上,于是跑到Linux安装成功的服务器执行了一下,输出结果如下:

-I/usr/local/include/opencv -I/usr/local/include /usr/local/lib/libopencv_calib3d.so /usr/local/lib/libopencv_contrib.so /usr/local/lib/libopencv_core.so /usr/local/lib/libopencv_features2d.so /usr/local/lib/libopencv_flann.so /usr/local/lib/libopencv_gpu.so /usr/local/lib/libopencv_highgui.so /usr/local/lib/libopencv_imgproc.so /usr/local/lib/libopencv_legacy.so /usr/local/lib/libopencv_ml.so /usr/local/lib/libopencv_nonfree.so /usr/local/lib/libopencv_objdetect.so /usr/local/lib/libopencv_photo.so /usr/local/lib/libopencv_stitching.so /usr/local/lib/libopencv_ts.so /usr/local/lib/libopencv_video.so /usr/local/lib/libopencv_videostab.so

再看他的判断代码:

OPENCV_FLAGS="`pkg-config opencv --libs --cflags opencv`"
for i in $OPENCV_FLAGS;do
if test ${i:0:2} = "-I" ;then
PHP_ADD_INCLUDE(${i:2})
elif test ${i:${#i}-3} = ".so" ;then
dir_name=`dirname $i`
file_name=${i/$dir_name/}
file_name=${file_name//lib/}
file_name=${file_name/.so/}
PHP_ADD_LIBRARY_WITH_PATH($file_name,$dir_name,TCLIP_SHARED_LIBADD)
else
AC_MSG_ERROR([no result from pkg-config opencv --libs --cflags opencv])
fi
done

我立刻就明白了,Linux上输出的都是具体的.so路径,MacOS上都是相对的路径,而config.m4中是根据具体路径和扩展名判断的,明白了问题,解决就简单了。

将 pkg-config opencv --libs --cflags opencv 的执行结果修改为具体的路径,并替换到config.m4中:

OPENCV_FLAGS="-I/usr/local/include/opencv -I/usr/local/include /usr/local/lib/libopencv_calib3d.dylib /usr/local/lib/libopencv_contrib.dylib /usr/local/lib/libopencv_core.dylib /usr/local/lib/libopencv_features2d.dylib /usr/local/lib/libopencv_flann.dylib /usr/local/lib/libopencv_gpu.dylib /usr/local/lib/libopencv_highgui.dylib /usr/local/lib/libopencv_imgproc.dylib /usr/local/lib/libopencv_legacy.dylib /usr/local/lib/libopencv_ml.dylib /usr/local/lib/libopencv_nonfree.dylib /usr/local/lib/libopencv_objdetect.dylib /usr/local/lib/libopencv_photo.dylib /usr/local/lib/libopencv_stitching.dylib /usr/local/lib/libopencv_ts.dylib /usr/local/lib/libopencv_video.dylib /usr/local/lib/libopencv_videostab.dylib"

再继续执行:

phpize
./configure
make
make install

顺利安装完成。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/30200.html

相关文章

  • PHP片操作

    摘要:保持原图长宽比,以图片的长度,或者宽度中,最小的一个为准,尽可能填充整个缩略图的画框,只显示原图中的某一部分。涉及到的相关图片操作函数如下创建黑色图片获取图片相关信息一个图片中的一部分到另外一个图片输出图片具体使用方法请查看相关手册。 1, PHP 中 图片的处理 要 依靠于扩展库, 可以选择gd2,或者imagemagick 第一步,首先要开启gd2的扩展库,在phpinfo() 中...

    yacheng 评论0 收藏0
  • 又拍云片处理集群架构

    摘要:又拍云图片处理集群规模及架构图片处理集群规模台核内存的服务器,相当于有核的处理能力。平时花瓣网的图片处理量就已经占集群超过,一下子翻几十倍的处理量进来,肯定会对作图服务造成影响。 黄慧攀,又拍云 CTO。最早在 2001 年开始 web 开发工作;2006 年创办 yo2.cn 优博网(WordPress 博客平台);2010 年加入又拍云开始构建第一代云存储和云 CDN 服务。曾从事前端、...

    n7then 评论0 收藏0
  • TOB主题2.7版本更新:重做文章主列表、新增菜单标支持、面包屑、彩色标签、缩略圆角

    摘要:主题版本更新重做文章主列表新增菜单图标支持面包屑彩色标签缩略图圆角支持中文和英文,支持百度收录,适用于各种图片展示网站新闻站电影站美图站资源站等等,扁平化设计公众号展示打赏功能列表无限加载全屏相册展示。TOB主题2.7版本更新:重做文章主列表、新增菜单图标支持、面包屑、彩色标签、缩略图圆角!支持中文和英文,支持百度收录,适用于各种图片展示网站、新闻站、电影站、美图站、资源站等等,扁平化设计、...

    rose 评论0 收藏0
  • [译] 帮你高效使用 VS Code 秘诀

    摘要:当你处于文件管理器中,你可以像在的中那样用相同的快捷键进行常规操作,比如用方向键导航用键给文件或文件夹重命名用打开当前文件等。 原文地址:Tips to use VSCode more efficiently 原文作者:sudolabs 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m… 译者:Baddyo 校对者:xionglong58, hzdaqo ...

    cgspine 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<