ホームページ >バックエンド開発 >PHPチュートリアル >PHP はリアルタイム画像処理のためにカメラを呼び出します: 簡単なチュートリアルの共有
PHP はリアルタイム画像処理のためにカメラを呼び出します: 簡単なチュートリアルの共有
カメラのリアルタイム画像処理は、ビデオ監視、顔認識、画像分析などの多くのシナリオで広く使用されています。 。 PHP 開発者にとっては、カメラを呼び出してリアルタイムの画像処理を実現することも可能です。この記事では、PHP を使用してカメラを呼び出してリアルタイムの画像処理を行う方法を説明する簡単なチュートリアルを紹介します。
1.1 OpenCV のダウンロードとインストール
OpenCV の公式 Web サイト (https://opencv.org/) にアクセスして、最新バージョンの OpenCV をダウンロードできます。 OpenCV。お使いのシステムに応じて、対応するインストール パッケージを選択し、ダウンロードしてインストールを完了します。
1.2 php-opencv プラグインのインストール
php-opencv は、PHP 開発者が OpenCV ライブラリを操作するための拡張プラグインです。プラグインのソース コードは GitHub (https://github.com/opencv/opencv_contrib) で見つけてダウンロードし、コンパイルしてインストールできます。具体的なインストール手順は、公式ドキュメントに従って実行できます。
<?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(); // 释放摄像头资源 ?>
上記のコードは、php-opencv プラグインを使用してデフォルトのカメラを開き、VideoCapture クラスを呼び出してカメラの画像フレームを読み取ります。次に、画像フレームがエンコードされ、echo ステートメントを介してブラウザに画像が表示されます。いずれかのキーが押されると、ループを終了し、カメラのリソースを解放します。
<?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(); // 释放摄像头资源 ?>
カメラから画像フレームを読み取った後、上記のコードはまずカラー画像をグレースケール画像に変換し、ヒストグラム等化を使用してコントラストを強化します。次に、ロードされた顔認識モデルを使用して顔検出を実行し、検出された顔の四角形を描画します。最後に、画像フレームがエンコードされて表示されます。
上記の簡単なチュートリアルを通じて、PHP を使用してカメラを呼び出し、リアルタイムの画像処理を行うことができます。もちろん、実際のアプリケーションではさらに複雑なアルゴリズムや処理手順が必要になる場合がありますが、この記事では入門レベルの例を示しますので、リアルタイム画像処理の学習に役立てていただければ幸いです。興味があれば、OpenCV と php-opencv が提供するさらに多くの関数とインターフェイスをさらに学習し、探索することができます。
以上がPHP はリアルタイム画像処理のためにカメラを呼び出します: 簡単なチュートリアルの共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。