MacOS 安装 PHP的图片裁剪扩展Tclip

 Tclip是一个头像自动识别,php图片裁剪项目。他可以自动识别图片中的重要区域,并且在图片裁剪时保留重要区域。下面我们就来看看如何在MacOS上进行安装。

 
 

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

 

顺利安装完成。

以上所述就是本文的全部内容了,希望大家能够喜欢。

时间: 2024-08-19 22:01:45

MacOS 安装 PHP的图片裁剪扩展Tclip的相关文章

MacOS 安装 PHP的图片裁剪扩展Tclip_php技巧

Tclip 用于图片裁剪,有以下特点: 能进行人脸识别.图片中有人脸,将自动视为人脸区域为重要区域,将不会被裁剪掉. 自动识别其它重要区域.如果图片中未识别出人脸,则会根据特征分布计算出重区域. 总而言之,自动识别图片中的重要区域,并且在图片裁剪时保留重要区域. 源码地址:https://github.com/exinnet/tclip 安装opencv 根据github上的说明,在CentOS上安装没有问题,但在我的MacOS上就挂了. 首先遇到的问题就是,opencv安装不过去.还好,上gi

jQuery+HttpHandler实现图片裁剪(适用于论坛,SNS)

序言: 上次发了几个jQuery的插件和些心得, 很多园友(也许是自己站上的)发邮件希望能提供更多的源码, 正好这次有个同学希望在自己的坛子上挂个图片裁剪以生成头像的功能, 于是帮忙写了这么个插件.也许很多园友用得着, 就一并发上来啦. 正文: 为了使层次分明及便于阅读, 整个解决方案如下: 其中BitmapCutter.Core是图片的服务器端处理程序, 类图为:

javascript 图片裁剪技巧

学php gd库 看到有图片裁剪 正好整一个 嗯 其实挺简单的 php版,代码如下: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Resize&l

Word里利用填充效果把图片裁剪成异形

作者:陈秀峰 原创 在Word文档中,如果想把图片裁剪成异形,可以通过图形的"填充"效果来实现. 1.先准备好需要裁剪的图片:通过图像处理软件,将需要裁剪下来的部分调整到图片的中央部位. 2.进入Word中,利用"绘图"工具栏上的相关按钮,根据裁剪的需要,在文档中绘制出一个封闭的异形图形.此处,为了方便,我们直接用"云形标注"自选图形来操作(如图1). 图1 自选图形 3.在"云形标注"自选图形边缘处双击鼠标,打开"

ps图片裁剪技巧

数码相机拍摄的照片需要通过裁剪得到良好的构图和合适的大小.裁剪工具可以简单地完成这些任务.不过有的朋友可能不知道,裁剪照片的方法有很多,不仅仅是裁剪工具的专利. "裁剪工具" 的基础用法 裁剪工具可以用来将图片裁大或者裁小,修正歪斜的照片. 1: 我们首先学习裁剪工具的基础用法.使用图1所示的裁剪工具(标示1处),可以看到属性栏(标示2处)在默认情况下是没有输入任何数值的,我们可以在图中框 选出一块区域,这块区域的周围会被变暗,以显示出裁来的区域.裁剪框的周围有8个控制点,利用它,我们

PHP图片裁剪函数

 这篇文章主要介绍了PHP图片裁剪函数,同时保持图像不变形,需要的朋友可以参考下 为了完成图片上传之后自动的裁剪,然后在前台显示出裁剪出的图片. 需求如上,源码如下: 代码如下: *exif_imagetype -- 判断一个图像的类型 *说明:函数功能是把一个图像裁剪为任意大小的图像,图像不变形 * 参数说明:输入 需要处理图片的 文件名,生成新图片的保存文件名,生成新图片的宽,生成新图片的高 */ // 获得任意大小图像,不足地方拉伸,不产生变形,不留下空白 function my_imag

在Word中如何将图片裁剪成异形?

  在Word文档中,如果想把图片裁剪成异形,可以通过图形的"填充"效果来实现. 1.先准备好需要裁剪的图片:通过图像处理软件,将需要裁剪下来的部分调整到图片的中央部位. 2.进入Word中,利用"绘图"工具栏上的相关按钮,根据裁剪的需要,在文档中绘制出一个封闭的异形图形.此处,为了方便,我们直接用"云形标注"自选图形来操作(如图1). 3.在"云形标注"自选图形边缘处双击鼠标,打开"设置自选图形格式"对话

电脑怎么把将图片裁剪成不同的形状?

  平时我们想用不规则的图片,怎么制作呢!下面跟着一起来制作吧 1.打开'画图'软件 2.选择'粘贴,下的'粘贴来源' 3.将图片插入进去 4.点击'选择'下的'自由图形选择',这是进行图片裁剪 5.裁剪完之后,点击工具栏中'裁剪'完成

Android实现相机拍摄、选择、图片裁剪功能_Android

最近的一些学习心得: 功能实现:点击圆形头像之后可以实现相册上传或者开启相机,然后把得到的图片经过剪裁,把剪裁过的图片设置为头像的背景图 步骤:第一步:自定义一个类,继承ImageView,重写draw方法,实现外观为圆形 第二步:在xml文件中引用该控件 第三步:实现圆形头像的点击事件,点击后显示对话框界面,询问你是打开相册还是相机(自动省略显示对话框的代码) 第四步:根据用户选择情况,打开相册或者相机 第五步:将拍摄的图片或者相册选中的图片进行剪裁,将结果保存在指定内存区域 第六步:更新头像