Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk melaksanakan pengesanan kawasan teks menggunakan perpustakaan PHP dan OpenCV?

Bagaimana untuk melaksanakan pengesanan kawasan teks menggunakan perpustakaan PHP dan OpenCV?

王林
Lepaskan: 2023-07-17 11:24:02
asal
1195 orang telah melayarinya

Bagaimana untuk melaksanakan pengesanan kawasan teks menggunakan PHP dan perpustakaan OpenCV?

OpenCV ialah perpustakaan penglihatan komputer sumber terbuka yang boleh digunakan untuk pemprosesan imej dan aplikasi penglihatan mesin. Dalam artikel ini, kami akan memperkenalkan cara menggunakan perpustakaan PHP dan OpenCV untuk melaksanakan pengesanan kawasan teks.

Untuk menggunakan PHP untuk pemprosesan imej, kami perlu memasang sambungan OpenCV untuk PHP. Ia boleh dipasang dengan menjalankan arahan berikut:

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
Salin selepas log masuk

Seterusnya, kita perlu memperkenalkan sambungan OpenCV dalam fail konfigurasi PHP. Anda boleh mengedit fail php.ini dan menambah baris pada penghujung fail:

extension=opencv.so
Salin selepas log masuk

Selepas menyimpan dan menutup fail, mulakan semula perkhidmatan PHP.

Seterusnya, kami akan melihat contoh untuk menunjukkan cara mengesan kawasan teks dalam imej menggunakan PHP dan OpenCV.

Mula-mula, buat fail PHP yang dipanggil text_detection.php dan salin kod berikut ke dalam fail: 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);
Salin selepas log masuk

请注意,您需要将代码中的 "path/to/your/image.jpg"

php text_detection.php
Salin selepas log masuk
Sila ambil perhatian bahawa anda perlu menukar "path/to Replace /your/ image.jpg" dengan laluan ke imej yang anda ingin kesan.

Fungsi kod di atas adalah seperti berikut:
  1. Muat perpustakaan OpenCV.
  2. Baca imej dan tukarkannya kepada imej skala kelabu.
  3. Tukar imej skala kelabu kepada imej binari menggunakan kaedah ambang adaptif.
  4. Buat kernel morfologi untuk menyambungkan kawasan teks dalam imej.
  5. Lakukan operasi penutupan untuk menyambungkan kawasan teks.
  6. Cari garis besar teks dalam imej.
  7. Gelung melalui setiap kontur, kira kotak sempadan dan lukis kotak sempadan pada imej asal.
  8. Tunjukkan imej hasil.

Selepas menyimpan dan menutup fail, jalankan arahan berikut dalam terminal untuk melaksanakan kod:

rrreee

Selepas melaksanakan kod, tetingkap imej dengan kawasan teks bertanda akan dipaparkan dan tunggu sebarang kekunci ditekan untuk tutup tingkap.

Melalui langkah di atas, kami berjaya melaksanakan fungsi pengesanan kawasan teks menggunakan perpustakaan PHP dan OpenCV. Anda boleh melanjutkan dan mengoptimumkan contoh kod ini untuk memenuhi keperluan yang lebih khusus. 🎜

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan pengesanan kawasan teks menggunakan perpustakaan PHP dan OpenCV?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan