Maison >développement back-end >tutoriel php >Comment appeler la caméra pour la détection d'objets via PHP
Comment appeler la caméra pour la détection d'objets via PHP
Les caméras sont devenues très courantes dans la vie moderne. Nous pouvons utiliser des caméras pour effectuer diverses opérations, dont la détection d’objets. Cet article explique comment utiliser le langage PHP pour appeler la caméra et effectuer la détection d'objets.
Avant de commencer, nous devons nous assurer que PHP est installé et que la caméra peut être utilisée. Voici les étapes pour utiliser PHP pour la détection d'objets :
sudo apt-get install python-opencv sudo apt-get install unzip wget https://github.com/nenadmarkus/pico cd pico unzip master.zip cd /path/to/php-facedetect-master
<?php // 调用摄像头 exec('fswebcam -d /dev/video0 -r 1280x720 --no-banner image.jpg'); // 加载图片 $image = imagecreatefromjpeg('image.jpg'); // 设置参数 $scale = 4; $w = imagesx($image) / $scale; $h = imagesy($image) / $scale; $size = min($w, $h); $x = (imagesx($image) - $size) / 2; $y = (imagesy($image) - $size) / 2; // 裁剪图片 $croppedImage = imagecrop($image, ['x' => $x, 'y' => $y, 'width' => $size, 'height' => $size]); // 保存裁剪后的图片 imagejpeg($croppedImage, 'cropped.jpg'); // 调用pico人脸检测库 exec('pico/picornt cropped.jpg face.txt'); // 解析人脸检测结果 $faceTxt = file_get_contents('face.txt'); $faceTxt = explode(" ", $faceTxt); $faceCount = count($faceTxt); // 在原始图像上绘制检测到的人脸框 for ($i = 0; $i < $faceCount - 1; $i++) { $faceData = explode(" ", $faceTxt[$i]); $x = $faceData[0] * $scale; $y = $faceData[1] * $scale; $width = $faceData[2] * $scale; $height = $faceData[3] * $scale; imagerectangle($image, $x, $y, $x + $width, $y + $height, imagecolorallocate($image, 0, 255, 0)); } // 显示图像 header("Content-Type: image/jpeg"); imagejpeg($image); // 删除临时文件 unlink('image.jpg'); unlink('cropped.jpg'); unlink('face.txt'); ?>
Le code ci-dessus appelle d'abord la caméra pour obtenir une image et l'enregistre sous image.jpg
. Ensuite, recadrez la zone centrale de l'image via OpenCV et enregistrez-la sous cropped.jpg
. Ensuite, appelez le programme de détection de visage pico dans la bibliothèque php-facedetect, prenez l'image traitée en entrée et enregistrez les résultats de détection de visage dans face.txt
. Enfin, les résultats de la détection des visages sont analysés, le cadre du visage est dessiné sur l'image d'origine et les résultats sont affichés. image.jpg
。然后,通过OpenCV裁剪图像的中心区域,保存为cropped.jpg
。接下来,调用php-facedetect库中的pico人脸检测程序,将处理后的图像作为输入,并将人脸检测结果保存到face.txt
。最后,解析人脸检测结果,并在原始图像上绘制人脸框,将结果显示出来。
detection.php
detection.php
et exécutez la commande suivante dans le terminal : php detection.php
Si tout fonctionne correctement, vous pouvoir voir La caméra capture l'image et dessine des carrés verts sur les visages détectés dans l'image.
Appeler la caméra via PHP pour la détection d'objets est une fonction intéressante. Dans cet article, nous expliquons comment utiliser OpenCV et la bibliothèque php-facedetect pour obtenir cette fonctionnalité, et fournissons un exemple de code pour démontrer comment détecter les visages. Vous pouvez modifier le code pour détecter d'autres objets selon vos besoins.
🎜Veuillez noter que cet exemple de code n'est pas complet et est uniquement destiné à des fins de démonstration. Dans les projets réels, vous aurez peut-être besoin de plus de logique et d'algorithmes pour effectuer une détection précise des objets. J'espère que cet article pourra vous inspirer et je vous souhaite du succès ! 🎜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!