Cara memanggil kamera untuk pengesanan objek melalui PHP
Kamera telah menjadi sangat biasa dalam kehidupan moden. Kita boleh menggunakan kamera untuk melakukan pelbagai operasi, salah satunya adalah pengesanan objek. Artikel ini akan memperkenalkan cara menggunakan bahasa PHP untuk memanggil kamera dan melakukan pengesanan objek.
Sebelum bermula, kita perlu pastikan PHP dipasang dan kamera boleh digunakan. Berikut ialah langkah untuk menggunakan PHP untuk pengesanan objek:
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'); ?>
Kod di atas mula-mula memanggil kamera untuk mendapatkan imej dan menyimpannya sebagai image.jpg
. Kemudian, pangkas kawasan tengah imej melalui OpenCV dan simpan sebagai cropped.jpg
. Seterusnya, panggil program pengesanan muka pico dalam pustaka php-facedetect, ambil imej yang diproses sebagai input dan simpan hasil pengesanan muka ke face.txt
. Akhir sekali, hasil pengesanan muka dihuraikan, bingkai muka dilukis pada imej asal dan hasilnya dipaparkan. image.jpg
。然后,通过OpenCV裁剪图像的中心区域,保存为cropped.jpg
。接下来,调用php-facedetect库中的pico人脸检测程序,将处理后的图像作为输入,并将人脸检测结果保存到face.txt
。最后,解析人脸检测结果,并在原始图像上绘制人脸框,将结果显示出来。
detection.php
detection.php
dan jalankan arahan berikut dalam terminal: php detection.php
Jika semuanya berjalan lancar, anda akan dapat melihat Kamera menangkap imej dan melukis kotak hijau pada muka yang dikesan dalam imej.
Memanggil kamera melalui PHP untuk pengesanan objek ialah fungsi yang menarik. Dalam artikel ini, kami memperkenalkan cara menggunakan OpenCV dan perpustakaan php-facedetect untuk mencapai fungsi ini, dan menyediakan kod sampel untuk menunjukkan cara mengesan wajah. Anda boleh mengubah suai kod untuk mengesan objek lain mengikut keperluan.
🎜Sila ambil perhatian bahawa kod sampel ini tidak lengkap dan adalah untuk tujuan demonstrasi sahaja. Dalam projek sebenar, anda mungkin memerlukan lebih logik dan algoritma untuk melengkapkan pengesanan objek yang tepat. Saya harap artikel ini dapat memberi inspirasi kepada anda, dan saya harap anda berjaya! 🎜Atas ialah kandungan terperinci Bagaimana untuk memanggil kamera untuk pengesanan objek melalui PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!