MacOS 安裝 PHP的圖片裁剪擴(kuò)展Tclip
Tclip 用于圖片裁剪,有以下特點(diǎn):
能進(jìn)行人臉識(shí)別。圖片中有人臉,將自動(dòng)視為人臉區(qū)域?yàn)橹匾獏^(qū)域,將不會(huì)被裁剪掉。
自動(dòng)識(shí)別其它重要區(qū)域。如果圖片中未識(shí)別出人臉,則會(huì)根據(jù)特征分布計(jì)算出重區(qū)域。
總而言之,自動(dòng)識(shí)別圖片中的重要區(qū)域,并且在圖片裁剪時(shí)保留重要區(qū)域。
源碼地址:https://github.com/exinnet/tclip
安裝opencv
根據(jù)github上的說(shuō)明,在CentOS上安裝沒(méi)有問(wèn)題,但在我的MacOS上就掛了。
首先遇到的問(wèn)題就是,opencv安裝不過(guò)去。還好,上github下載最新的opencv-2.4.11 安裝成功。
下載地址:https://github.com/Itseez/opencv/releases
使用當(dāng)前最新版本 OpenCV 2.4.11
安裝依賴
在安裝opencv之前,先安裝一些依賴包:
brew install gtk+ pkgconfig libpng zlib libjpeg libtiff cmake
提示: brew的安裝使用請(qǐng)參考 http://brew.sh/
安裝opencv
開(kāi)始安裝 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
然后繼續(xù):
unzip tclip-master.zip
cd tclip-master/php_ext
phpize
./configure
如果不出意外,到這一步,應(yīng)該就掛掉了,提示:
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 作者的頁(yè)面上 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
評(píng)論中,也有網(wǎng)友遇到了類似的問(wèn)題,提出修改辦法為:
將 config.m4 中的 判斷語(yǔ)句test ${i:${#i}-3} = “.so”,改為 test ${i:${#i}-6} = ".dylib”,并嘗試將46行的.so 也改稱 .dylib
依然提示no result的錯(cuò)誤~
再翻翻config.m4的代碼和執(zhí)行 pkg-config opencv --libs --cflags opencv的輸出結(jié)果:
-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
感覺(jué)怎么對(duì)不上,于是跑到Linux安裝成功的服務(wù)器執(zhí)行了一下,輸出結(jié)果如下:
-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上都是相對(duì)的路徑,而config.m4中是根據(jù)具體路徑和擴(kuò)展名判斷的,明白了問(wèn)題,解決就簡(jiǎn)單了。
將 pkg-config opencv --libs --cflags opencv 的執(zhí)行結(jié)果修改為具體的路徑,并替換到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"
再繼續(xù)執(zhí)行:
phpize
./configure
make
make install
順利安裝完成。
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
請(qǐng)您花一點(diǎn)時(shí)間將文章分享給您的朋友或者留下評(píng)論。我們將會(huì)由衷感謝您的支持!
相關(guān)文章
Laravel網(wǎng)站打開(kāi)速度優(yōu)化的方法匯總
最近在學(xué)習(xí) Laravel 框架,自己做了個(gè)小站,總結(jié)了一些 Laravel 網(wǎng)站性能提升的方法。所以下面這篇文章主要給大家匯總介紹了關(guān)于Laravel網(wǎng)站打開(kāi)速度優(yōu)化的一些方法,文中介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-07-07
PHP函數(shù)checkdnsrr用法詳解(Windows平臺(tái)用法)
這篇文章主要介紹了PHP函數(shù)checkdnsrr用法,分析講解了在Windows平臺(tái)使用checkdnsrr函數(shù)的方法,需要的朋友可以參考下2016-03-03
php檢查日期函數(shù)checkdate用法實(shí)例
這篇文章主要介紹了php檢查日期函數(shù)checkdate用法,實(shí)例分析了php中checkdate函數(shù)的使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-03-03
PHP實(shí)現(xiàn)識(shí)別復(fù)雜pdf文檔的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何使用PHP實(shí)現(xiàn)識(shí)別復(fù)雜pdf文檔的功能,文中的示例代碼講解詳細(xì),感興趣的徐海波可以跟隨小編一起學(xué)習(xí)一下2024-01-01
PHP實(shí)現(xiàn)補(bǔ)齊關(guān)閉的HTML標(biāo)簽
這篇文章主要介紹了PHP實(shí)現(xiàn)補(bǔ)齊關(guān)閉的HTML標(biāo)簽的方法,通過(guò)自定義函數(shù)實(shí)現(xiàn)針對(duì)HTML標(biāo)簽的閉合補(bǔ)全功能,涉及PHP字符串及正則匹配相關(guān)操作技巧,需要的朋友可以參考下2016-03-03

