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.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.
<?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.
<?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!