PHP と OpenCV ライブラリを使用してテキスト領域検出を実装するにはどうすればよいですか?
OpenCV は、画像処理およびマシン ビジョン アプリケーションに使用できるオープン ソースのコンピューター ビジョン ライブラリです。この記事では、PHP および OpenCV ライブラリを使用してテキスト領域検出を実装する方法を紹介します。
画像処理に PHP を使用するには、PHP 用の OpenCV 拡張機能をインストールする必要があります。次のコマンドを実行してインストールできます:
sudo apt-get install php7.4-dev git clone https://github.com/php-opencv/php-opencv.git cd php-opencv phpize ./configure make sudo make install
次に、PHP 構成ファイルに OpenCV 拡張機能を導入する必要があります。 php.ini ファイルを編集して、ファイルの末尾に次の行を追加できます。
extension=opencv.so
ファイルを保存して閉じた後、PHP サービスを再起動します。
次に、例を使用して、PHP と OpenCV を使用して画像内のテキスト領域を検出する方法を示します。
まず、text_detection.php
という名前の PHP ファイルを作成し、次のコードをファイルにコピーします:
<?php // 加载OpenCV库 $opencv = new OpenCVOpenCV(); // 读取图像 $imagePath = "path/to/your/image.jpg"; $image = $opencv->imread($imagePath); // 转换为灰度图像 $gray = $opencv->cvtColor($image, OpenCVCV_BGR2GRAY); // 使用自适应阈值化将图像转换为二值图像 $binary = $opencv->adaptiveThreshold($gray, 255, OpenCVCV_ADAPTIVE_THRESH_GAUSSIAN_C, OpenCVCV_THRESH_BINARY, 11, 2); // 创建形态学内核 $kernel = $opencv->getStructuringElement(OpenCVCvCV_SHAPE_RECT, new OpenCVCvSize(17, 3)); // 执行闭运算以将文本区域连接 $closing = $opencv->morphologyEx($binary, OpenCVCvCV_MOP_CLOSE, $kernel); // 查找文本轮廓 $contours = $opencv->findContours($closing, OpenCVCV_RETR_EXTERNAL, OpenCVCV_CHAIN_APPROX_SIMPLE); // 循环处理每个轮廓 foreach ($contours as $contour) { // 计算轮廓的边界框 $boundingBox = $opencv->boundingRect($contour); // 在原始图像上绘制边界框 $image = $opencv->rectangle($image, $boundingBox->tl(), $boundingBox->br(), new OpenCVCvScalar(0, 255, 0), 2); } // 显示结果图像 $opencv->imshow("Text Detection", $image); $opencv->waitKey(0);
を変更する必要があることに注意してください。 path/to/your/image.jpg"
検出する画像へのパスに置き換えます。
上記のコードの機能は次のとおりです:
ファイルを保存して閉じた後、ターミナルで次のコマンドを実行してコードを実行します。
php text_detection.php
コードを実行すると、マークされたテキストが表示された画像ウィンドウが表示されます。エリアを選択し、任意のキーが押されてウィンドウが閉じるまで待ちます。
上記の手順により、PHP と OpenCV ライブラリを使用してテキスト領域検出機能を実装することができました。このコード例をさらに拡張および最適化して、より具体的なニーズを満たすことができます。
以上がPHP と OpenCV ライブラリを使用してテキスト領域検出を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。