Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Ketahui cara memproses imej dan strim video menggunakan PHP dan OpenCV

Ketahui cara memproses imej dan strim video menggunakan PHP dan OpenCV

PHPz
PHPzasal
2023-06-19 15:21:101655semak imbas

Dengan kemunculan era digital, imej dan video telah menjadi bahagian penting dalam kehidupan Daripada kamera telefon pintar kepada kamera pengawasan, data ini perlu diproses dan dianalisis. Gabungan PHP dan OpenCV membolehkan kami memproses imej dan video dengan lebih mudah, membolehkan kami memperoleh pemahaman yang lebih mendalam tentang topik popular ini.

Pertama, mari kita fahami asas PHP dan OpenCV. PHP ialah bahasa skrip yang digunakan secara meluas dalam pembangunan web. Ia boleh berkomunikasi dengan pelayan web melalui protokol HTTP dan menjana halaman web dinamik. OpenCV ialah perpustakaan perisian penglihatan komputer dan pembelajaran mesin yang menyediakan pelbagai fungsi pemprosesan imej dan video, seperti penapisan imej, pengesanan tepi, pengecaman ciri, dsb. OpenCV pada asalnya ditulis dalam C++, tetapi ia juga menyokong antara muka untuk bahasa lain, seperti Python, Java dan PHP. Dengan menggunakan PHP dan OpenCV, kami boleh melaksanakan pelbagai fungsi pemprosesan imej dan video dengan mudah.

Seterusnya, kita akan melihat cara memproses imej menggunakan PHP dan OpenCV. Sokongan PHP untuk OpenCV dilaksanakan melalui sambungan OpenCV-PHP yang disediakan secara rasmi. Pertama, kita perlu memasang sambungan OpenCV-PHP. Proses pemasangan adalah seperti berikut:

  1. Pasang pustaka OpenCV
  2. Muat turun kod sumber sambungan OpenCV-PHP
  3. Kompil dan pasang sambungan OpenCV-PHP

Selepas berjaya memasang sambungan OpenCV-PHP, kami boleh menggunakan PHP untuk memuatkan imej dan melakukan pelbagai operasi pemprosesan imej. Berikut ialah beberapa contoh kod untuk memproses imej:

//加载图像
$image = cvimread('image.jpg');

//灰度化
$gray = cvcvtColor($image, cvCOLOR_BGR2GRAY);

//高斯滤波
$blur = cvGaussianBlur($gray, [3, 3], 0);

//Canny边缘检测
$edges = cvCanny($blur, 50, 150);

//保存图像
cvimwrite('edges.jpg', $edges);

Kod di atas boleh memuatkan imej bernama "image.jpg" ke dalam memori, melakukan beberapa operasi pemprosesan imej dan akhirnya menyimpan hasil yang diproses sebagai dinamakan A new image fail untuk "edges.jpg".

Seterusnya, mari lihat cara memproses strim video menggunakan PHP dan OpenCV. Proses memproses video adalah serupa dengan memproses imej Perbezaannya ialah kita perlu membaca satu siri imej bingkai daripada aliran video dan melakukan operasi pemprosesan yang sepadan pada setiap bingkai. Berikut ialah kod sampel yang membaca aliran video daripada kamera, melakukan pemprosesan skala kelabu pada setiap bingkai dan mengeluarkan hasil yang diproses ke skrin:

//创建视频捕获对象
$cap = cvVideoCapture::create(0);

if (!$cap->isOpened()) {
    die("Failed to open camera");
}

//循环读取每一帧,并进行处理
while (true) {
    //读取一帧
    $frame = cvMat::zeros(480, 640, cvCV_8UC3);
    $cap->read($frame);

    //如果没有读取到帧,则结束循环
    if ($frame->empty()) {
        break;
    }

    //灰度化
    $gray = cvcvtColor($frame, cvCOLOR_BGR2GRAY);

    //将处理后的图像输出到屏幕上
    cvimshow('Video', $gray);

    //等待10毫秒,然后读取下一帧
    $key = cvwaitKey(10);
}

Dalam kod di atas, kami menggunakan kelas cvVideoCapture untuk mencipta Cipta objek tangkapan video dan gunakannya untuk membaca aliran video daripada kamera. Kami kemudian membaca setiap bingkai imej dalam gelung dan melakukan operasi skala kelabu pada setiap bingkai. Akhir sekali, kami menggunakan fungsi cvimshow untuk mengeluarkan imej yang diproses ke skrin, dan menggunakan fungsi cvwaitKey untuk menunggu 10 milisaat untuk membaca bingkai imej seterusnya sehingga gelung berakhir.

Ringkasnya, PHP dan OpenCV ialah dua alatan berkuasa yang boleh membantu kami memproses imej dan strim video, membolehkan kami menggunakan pelbagai data imej dengan lebih berkesan dalam kehidupan harian dan penyelidikan saintifik. Dengan mempelajari penggunaan PHP dan OpenCV, kami boleh meningkatkan lagi penglihatan komputer dan kemahiran pembelajaran mesin kami serta meletakkan asas yang kukuh untuk pembangunan profesional dan akademik masa hadapan.

Atas ialah kandungan terperinci Ketahui cara memproses imej dan strim video menggunakan PHP dan OpenCV. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn