Maison >développement back-end >tutoriel php >Comment implémenter la détection de zone de texte à l'aide de la bibliothèque PHP et OpenCV ?
Comment implémenter la détection de zone de texte à l'aide de PHP et de la bibliothèque OpenCV ?
OpenCV est une bibliothèque de vision par ordinateur open source qui peut être utilisée pour les applications de traitement d'images et de vision industrielle. Dans cet article, nous présenterons comment utiliser les bibliothèques PHP et OpenCV pour implémenter la détection de zone de texte.
Pour utiliser PHP pour le traitement d'images, nous devons installer l'extension OpenCV pour PHP. Il peut être installé en exécutant la commande suivante :
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
Ensuite, nous devons introduire l'extension OpenCV dans le fichier de configuration de PHP. Vous pouvez éditer le fichier php.ini et ajouter une ligne à la fin du fichier :
extension=opencv.so
Après avoir enregistré et fermé le fichier, redémarrez le service PHP.
Ensuite, nous passerons en revue un exemple pour montrer comment détecter les zones de texte dans les images à l'aide de PHP et OpenCV.
Tout d'abord, créez un fichier PHP appelé text_detection.php
et copiez le code suivant dans le fichier : 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.phpVeuillez noter que vous devez modifier le
"chemin/pour remplacer /votre/ image.jpg"
avec le chemin d'accès à l'image que vous souhaitez détecter. La fonction du code ci-dessus est la suivante : rrreee
Après avoir exécuté le code, une fenêtre d'image avec une zone de texte marquée s'affichera et attendez qu'une touche soit enfoncée pour fermez la fenêtre. Grâce aux étapes ci-dessus, nous avons implémenté avec succès la fonction de détection de zone de texte à l'aide des bibliothèques PHP et OpenCV. Vous pouvez étendre et optimiser davantage cet exemple de code pour répondre à des besoins plus spécifiques. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!