Heim > Artikel > Backend-Entwicklung > Wie implementiert man die Textbereichserkennung mithilfe der PHP- und OpenCV-Bibliothek?
Wie implementiert man die Textbereichserkennung mithilfe der PHP- und OpenCV-Bibliothek?
OpenCV ist eine Open-Source-Computer-Vision-Bibliothek, die für Bildverarbeitungs- und Machine-Vision-Anwendungen verwendet werden kann. In diesem Artikel stellen wir vor, wie Sie PHP- und OpenCV-Bibliotheken verwenden, um die Textbereichserkennung zu implementieren.
Um PHP für die Bildverarbeitung zu verwenden, müssen wir die OpenCV-Erweiterung für PHP installieren. Es kann durch Ausführen des folgenden Befehls installiert werden:
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
Als nächstes müssen wir die OpenCV-Erweiterung in die Konfigurationsdatei von PHP einführen. Sie können die Datei php.ini bearbeiten und am Ende der Datei eine Zeile hinzufügen:
extension=opencv.so
Nach dem Speichern und Schließen der Datei starten Sie den PHP-Dienst neu.
Als nächstes gehen wir ein Beispiel durch, um zu demonstrieren, wie man Textbereiche in Bildern mit PHP und OpenCV erkennt.
Erstellen Sie zunächst eine PHP-Datei mit dem Namen text_detection.php
und kopieren Sie den folgenden Code in die Datei: 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.phpBitte beachten Sie, dass Sie den
"Pfad/ ändern müssen, um /your/ zu ersetzen. image.jpg"
mit dem Pfad zu dem Bild, das Sie erkennen möchten. Die Funktionen des obigen Codes sind wie folgt: rrreee
Nach der Ausführung des Codes wird ein Bildfenster mit einem markierten Textbereich angezeigt und Sie warten darauf, dass eine beliebige Taste gedrückt wird Schließen Sie das Fenster. Durch die oben genannten Schritte haben wir die Funktion der Textbereichserkennung mithilfe von PHP- und OpenCV-Bibliotheken erfolgreich implementiert. Sie können dieses Codebeispiel weiter erweitern und optimieren, um spezifischere Anforderungen zu erfüllen. 🎜Das obige ist der detaillierte Inhalt vonWie implementiert man die Textbereichserkennung mithilfe der PHP- und OpenCV-Bibliothek?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!