PHP appelle la caméra pour le traitement d'image en temps réel : partage simple de tutoriels
Le traitement d'image en temps réel de la caméra est largement utilisé dans de nombreux scénarios, tels que la vidéosurveillance, la reconnaissance faciale, l'analyse d'image, etc. Pour les développeurs PHP, il est également possible de réaliser un traitement d'image en temps réel en appelant la caméra. Cet article partagera un didacticiel simple pour vous apprendre à utiliser PHP pour appeler la caméra pour le traitement d'images en temps réel.
1.1 Téléchargez et installez OpenCV
Vous pouvez vous rendre sur le site officiel d'OpenCV (https://opencv.org/) pour télécharger la dernière version d'OpenCV. Sélectionnez le package d'installation correspondant en fonction de votre système, téléchargez et terminez l'installation.
1.2 Installer le plug-in php-opencv
php-opencv est un plug-in d'extension permettant aux développeurs PHP d'exploiter la bibliothèque OpenCV. Vous pouvez retrouver le code source du plug-in sur GitHub (https://github.com/opencv/opencv_contrib), le télécharger, le compiler et l'installer. Les étapes d'installation spécifiques peuvent être effectuées selon la documentation officielle.
<?php $video = new VideoCapture(0); // 打开默认摄像头 while (true) { $frame = $video->read(); // 读取摄像头的图像帧 if ($frame !== null) { $image = cvimencode(".bmp", $frame); // 对图像帧进行编码 echo "<img src="data:image/bmp;base64," . base64_encode($image) . ""/>"; // 显示图像 } if (waitKey(1) >= 0) { // 按下任意键退出循环 break; } } $video->release(); // 释放摄像头资源 ?>
Le code ci-dessus utilise le plug-in php-opencv pour ouvrir la caméra par défaut et lire le cadre d'image de la caméra en appelant la classe VideoCapture. Le cadre d'image est ensuite codé et l'image est affichée dans le navigateur via une instruction echo. Lorsqu'une touche est enfoncée, quittez la boucle et libérez les ressources de la caméra.
<?php $video = new VideoCapture(0); // 打开默认摄像头 $cascade = new CascadeClassifier('haarcascade_frontalface_default.xml'); // 加载人脸识别模型 while (true) { $frame = $video->read(); // 读取摄像头的图像帧 if ($frame !== null) { $gray = cvcvtColor($frame, cvCOLOR_BGR2GRAY); // 将彩色图像转换为灰度图像 cvequalizeHist($gray, $gray); // 直方图均衡化增强对比度 $faces = $cascade->detectMultiScale($gray); // 人脸检测 foreach ($faces as $face) { cvectangle($frame, $face, new Scalar(0, 255, 0)); // 绘制人脸矩形 } $image = cvimencode(".bmp", $frame); // 对图像帧进行编码 echo "<img src="data:image/bmp;base64," . base64_encode($image) . ""/>"; // 显示图像 } if (waitKey(1) >= 0) { // 按下任意键退出循环 break; } } $video->release(); // 释放摄像头资源 ?>
Après avoir lu le cadre de l'image de la caméra, le code ci-dessus convertit d'abord l'image couleur en une image en niveaux de gris et utilise l'égalisation de l'histogramme pour améliorer le contraste. Utilisez ensuite le modèle de reconnaissance faciale chargé pour effectuer la détection des visages et dessiner le rectangle du visage détecté. Enfin, les images sont codées et affichées.
Grâce au didacticiel simple ci-dessus, nous pouvons utiliser PHP pour appeler la caméra pour le traitement d'image en temps réel. Bien sûr, des algorithmes et des procédures de traitement plus complexes peuvent être nécessaires dans les applications réelles, mais cet article fournit un exemple d'entrée de gamme qui, je l'espère, sera utile à votre apprentissage du traitement d'images en temps réel. Si vous êtes intéressé, vous pouvez en savoir plus et explorer davantage de fonctions et d'interfaces fournies par OpenCV et php-opencv.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!