Rumah > Artikel > pembangunan bahagian belakang > PHP memanggil kamera untuk pemprosesan imej masa nyata: perkongsian tutorial mudah
PHP memanggil kamera untuk pemprosesan imej masa nyata: perkongsian tutorial mudah
Pemprosesan imej masa nyata kamera digunakan secara meluas dalam banyak senario, seperti pengawasan video, pengecaman muka, analisis imej, dsb. Untuk pembangun PHP, ia juga boleh dilakukan untuk mencapai pemprosesan imej masa nyata dengan memanggil kamera. Artikel ini akan berkongsi tutorial ringkas untuk mengajar anda cara menggunakan PHP untuk memanggil kamera untuk pemprosesan imej masa nyata.
1.1 Muat turun dan pasang OpenCV
Anda boleh pergi ke tapak web rasmi OpenCV (https://opencv.org/) untuk memuat turun versi terkini OpenCV. Pilih pakej pemasangan yang sepadan mengikut sistem anda, muat turun dan lengkapkan pemasangan.
1.2 Pasang pemalam php-opencv
php-opencv ialah pemalam sambungan untuk pembangun PHP untuk mengendalikan perpustakaan OpenCV. Anda boleh mencari kod sumber pemalam di GitHub (https://github.com/opencv/opencv_contrib), muat turunnya, susun dan pasangnya. Langkah pemasangan khusus boleh dijalankan mengikut dokumentasi rasmi.
<?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(); // 释放摄像头资源 ?>
Kod di atas menggunakan pemalam php-opencv untuk membuka kamera lalai dan membaca bingkai imej kamera dengan menghubungi kelas VideoCapture. Bingkai imej kemudiannya dikodkan dan imej itu dipaparkan dalam penyemak imbas melalui pernyataan gema. Apabila sebarang kekunci ditekan, keluar dari gelung dan lepaskan sumber kamera.
<?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(); // 释放摄像头资源 ?>
Selepas membaca bingkai imej daripada kamera, kod di atas mula-mula menukar imej berwarna kepada imej skala kelabu dan menggunakan penyamaan histogram untuk meningkatkan kontras. Kemudian gunakan model pengecaman muka yang dimuatkan untuk melakukan pengesanan muka dan lukis segi empat tepat muka yang dikesan. Akhirnya, bingkai imej dikodkan dan dipaparkan.
Melalui tutorial mudah di atas, kita boleh menggunakan PHP untuk memanggil kamera untuk pemprosesan imej masa nyata. Sudah tentu, algoritma dan prosedur pemprosesan yang lebih kompleks mungkin diperlukan dalam aplikasi sebenar, tetapi artikel ini menyediakan contoh peringkat permulaan, yang saya harap akan membantu anda mempelajari pemprosesan imej masa nyata. Jika anda berminat, anda boleh mempelajari dan meneroka lebih banyak fungsi dan antara muka yang disediakan oleh OpenCV dan php-opencv.
Atas ialah kandungan terperinci PHP memanggil kamera untuk pemprosesan imej masa nyata: perkongsian tutorial mudah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!