Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

fishhu/php-opencv

Repository files navigation

PHP-OPENCV - PHP extension for Opencv

Build Status Minimum PHP Version

Document

Requirements

  • OpenCV 4.0.0+
  • PHP7.0+

Installation

Use OpenCV docker(commendatory)

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

Compile and install php-opencv extension

git clone https://github.com/hihozhou/php-opencv.git
cd php-opencv
phpize
./configure --with-php-config=your php-config path
make
make install

Configure

php.ini

extension="your opencv.so path"

Example

LBPH face recognition

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:

predict

Image Processing

//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:

Obama

Load image by gray

$gray = imread('Obama.png',IMREAD_GRAYSCALE);
//or
use function CV\{ cvtColor};
$gray = cvtColor($im, COLOR_BGR2GRAY);

Obama_gray

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:

ellipse

Features

  • 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

Contributors

This project exists thanks to all the people who contribute. [Contribute].

感谢

感谢韩天峰老大的指导,
感谢韩天峰老大的指导, 感谢盘古大叔php7-internal项目以及平常的指导, 感谢木桶技术升级交流群黑夜路人技术群、以及PHP内核交流的群友对技术的帮助。

About

PHP extensions for OpenCV

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 81.3%
  • C 10.6%
  • PHP 5.6%
  • M4 1.0%
  • JavaScript 0.8%
  • Shell 0.6%
  • Dockerfile 0.1%

AltStyle によって変換されたページ (->オリジナル) /