Build Status Minimum PHP Version
- OpenCV 4.0.0+
- PHP7.0+
If you don't know how to install OpenCV, you can use my OpenCV docker image(only 300M, including opencv_contrib).
docker pull hihozhou/php-opencv
git clone https://github.com/hihozhou/php-opencv.git
cd php-opencv
phpize
./configure --with-php-config=your php-config path
make
make installphp.ini
extension="your opencv.so path"
use CV\Face\LBPHFaceRecognizer; //use ...; $src = imread('facePic.jpg'); $gray = cvtColor($src, COLOR_BGR2GRAY); equalizeHist($gray, $gray); $faceRecognizer = LBPHFaceRecognizer::create(); /* ... */ //get $images and $labels for train $faceRecognizer->train($images, $labels);//How to get $image and $labels, see the document /* ... */ //Face detection using CascadeClassifier $faceLabel = $faceRecognizer->predict($gray); /* ... */ //draw face and name
result:
//Obama.php use function CV\{ imread, imshow, waitkey, namedWindow}; $im = imread('Obama.png');//load image namedWindow('This is Obama id card',WINDOW_FULLSCREEN);//create window imshow('This is Obama id card',$im);//show image on window waitkey(0);
result:
Load image by gray
$gray = imread('Obama.png',IMREAD_GRAYSCALE); //or use function CV\{ cvtColor}; $gray = cvtColor($im, COLOR_BGR2GRAY);
You can draw something.
e.g:
use CV\{Mat,Scalar, Point, Size}; use function CV\{ellipse, imwrite, waitKey}; use const CV\{CV_8UC3}; $windowWidth = 600; $thickness = 2; $lineType = 8; $matScalar = new Scalar(0,0,0); $mat = new Mat($windowWidth, $windowWidth, CV_8UC3, $matScalar); $point=new Point($windowWidth/2, $windowWidth/2); $size=new Size($windowWidth/4, $windowWidth/16); $scalar=new Scalar(255, 129, 0); for($i = 0; $i <= 360; $i += 45){ ellipse($mat,$point,$size,$i,0,360,$scalar,$thickness,$lineType); } imwrite('./tests/ellipse.png',$mat);
result:
- 1.core
- 2.imgproc
- 3.highgui
- 4.contrib
- 5.features2d
- 6.flann
- 7.gpu
- 8.calib3d
- 9.legacy
- 10.ml
- 11.nonfree
- 12.objdetect
- 13.ocl
- 14.photo
- 15.stitching
- 16.superres
- 17.ts
- 18.video
- 19.Videostab
This project exists thanks to all the people who contribute. [Contribute].
感谢韩天峰老大的指导,
感谢韩天峰老大的指导,
感谢盘古大叔的php7-internal项目以及平常的指导,
感谢木桶技术升级交流群和黑夜路人技术群、以及PHP内核交流的群友对技术的帮助。