Heim  >  Artikel  >  Backend-Entwicklung  >  PHP ruft die Kamera zur Bildverarbeitung in Echtzeit auf: einfaches Teilen von Tutorials

PHP ruft die Kamera zur Bildverarbeitung in Echtzeit auf: einfaches Teilen von Tutorials

WBOY
WBOYOriginal
2023-07-31 16:01:171149Durchsuche

PHP ruft die Kamera zur Echtzeit-Bildverarbeitung auf: Einfaches Teilen von Tutorials

Die Echtzeit-Bildverarbeitung der Kamera wird häufig in vielen Szenarien verwendet, z. B. bei Videoüberwachung, Gesichtserkennung, Bildanalyse usw. Für PHP-Entwickler ist es auch möglich, durch Aufrufen der Kamera eine Bildverarbeitung in Echtzeit zu erreichen. In diesem Artikel erfahren Sie anhand eines einfachen Tutorials, wie Sie mit PHP die Kamera für die Bildverarbeitung in Echtzeit aufrufen.

  1. Installieren Sie die entsprechende Software und den entsprechenden Treiber
    Um PHP zum Aufrufen der Kamera zu verwenden, müssen wir zuerst die entsprechende Software und den entsprechenden Treiber installieren. In Windows-Systemen können Sie dazu die Open-Source-Kameratreiberbibliothek OpenCV und das PHP-Plugin php-opencv verwenden. Die spezifischen Installationsschritte lauten wie folgt:

1.1 Laden Sie OpenCV herunter und installieren Sie es.
Sie können auf die offizielle Website von OpenCV (https://opencv.org/) gehen, um die neueste Version von OpenCV herunterzuladen. Wählen Sie das entsprechende Installationspaket entsprechend Ihrem System aus, laden Sie es herunter und schließen Sie die Installation ab.

1.2 Installieren Sie das php-opencv-Plug-in
php-opencv ist ein Erweiterungs-Plug-in für PHP-Entwickler zum Betrieb der OpenCV-Bibliothek. Sie können den Quellcode des Plug-Ins auf GitHub (https://github.com/opencv/opencv_contrib) finden, herunterladen, kompilieren und installieren. Die spezifischen Installationsschritte können gemäß der offiziellen Dokumentation durchgeführt werden.

  1. Kamera aufrufen und Echtzeitbilder anzeigen
    Nach der Installation der entsprechenden Software und Treiber können wir mit dem Schreiben von PHP-Code beginnen, um die Kamera aufzurufen und Echtzeitbilder anzuzeigen.
<?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(); // 释放摄像头资源
?>

Der obige Code verwendet das PHP-OpenCV-Plug-In, um die Standardkamera zu öffnen und den Bildrahmen der Kamera durch Aufrufen der VideoCapture-Klasse zu lesen. Der Bildrahmen wird dann codiert und das Bild wird über eine Echo-Anweisung im Browser angezeigt. Wenn eine beliebige Taste gedrückt wird, verlassen Sie die Schleife und geben die Kameraressourcen frei.

  1. Bildverarbeitung in Echtzeit
    Neben der Anzeige von Echtzeitbildern können wir auch eine Echtzeitverarbeitung von Bildern durchführen. Am Beispiel der Gesichtserkennung können wir den Gesichtserkennungsalgorithmus von OpenCV für die Gesichtserkennung in Echtzeit verwenden.
<?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(); // 释放摄像头资源
?>

Nach dem Lesen des Bildrahmens von der Kamera wandelt der obige Code zunächst das Farbbild in ein Graustufenbild um und verwendet den Histogrammausgleich, um den Kontrast zu verbessern. Verwenden Sie dann das geladene Gesichtserkennungsmodell, um die Gesichtserkennung durchzuführen und das erkannte Gesichtsrechteck zu zeichnen. Abschließend werden die Bildrahmen kodiert und angezeigt.

Durch das obige einfache Tutorial können wir PHP verwenden, um die Kamera für die Bildverarbeitung in Echtzeit aufzurufen. Natürlich sind in tatsächlichen Anwendungen möglicherweise komplexere Algorithmen und Verarbeitungsverfahren erforderlich, aber dieser Artikel bietet ein Einstiegsbeispiel, von dem ich hoffe, dass es Ihnen beim Erlernen der Echtzeit-Bildverarbeitung hilfreich sein wird. Wenn Sie interessiert sind, können Sie weitere Funktionen und Schnittstellen von OpenCV und php-opencv kennenlernen und erkunden.

Das obige ist der detaillierte Inhalt vonPHP ruft die Kamera zur Bildverarbeitung in Echtzeit auf: einfaches Teilen von Tutorials. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn