Maison  >  Article  >  développement back-end  >  PHP appelle la caméra pour le traitement d'images en temps réel : partage simple de tutoriels

PHP appelle la caméra pour le traitement d'images en temps réel : partage simple de tutoriels

WBOY
WBOYoriginal
2023-07-31 16:01:171141parcourir

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. Installez le logiciel et le pilote correspondants
    Pour utiliser PHP pour appeler la caméra, nous devons d'abord installer le logiciel et le pilote correspondants. Dans les systèmes Windows, vous pouvez utiliser la bibliothèque de pilotes de caméra open source OpenCV et le plug-in PHP php-opencv pour y parvenir. Les étapes d'installation spécifiques sont les suivantes :

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.

  1. Appelez la caméra et affichez des images en temps réel
    Après avoir installé le logiciel et les pilotes appropriés, nous pouvons commencer à écrire du code PHP pour appeler la caméra et afficher des images en temps réel.
<?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.

  1. Traitement d'images en temps réel
    En plus d'afficher des images en temps réel, nous pouvons également effectuer un traitement en temps réel sur les images. En prenant la reconnaissance faciale comme exemple, nous pouvons utiliser l'algorithme de reconnaissance faciale d'OpenCV pour la détection des visages en temps réel.
<?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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn