Rumah >pembangunan bahagian belakang >tutorial php >Cara memangkas imej dan menyimpan padding menggunakan perpustakaan PHP dan OpenCV

Cara memangkas imej dan menyimpan padding menggunakan perpustakaan PHP dan OpenCV

PHPz
PHPzasal
2023-07-17 12:54:071540semak imbas

Cara memangkas imej dan terus berlapik menggunakan perpustakaan PHP dan OpenCV

Pengenalan:
Pemprosesan imej memainkan peranan penting dalam bidang sains komputer moden. Pemotongan imej ialah tugas biasa dalam pemprosesan imej, yang membolehkan kami memilih kawasan yang diminati daripada imej asal dan melakukan analisis atau pemprosesan lanjut ke atasnya. Dalam artikel ini, kami akan memperkenalkan cara menggunakan bahasa pengaturcaraan PHP dan perpustakaan OpenCV untuk memangkas imej dan mengekalkan padding.

OpenCV ialah perpustakaan penglihatan komputer sumber terbuka yang digunakan secara meluas yang menyediakan satu siri fungsi pemprosesan imej yang berkuasa. PHP adalah bahasa skrip yang digunakan secara meluas untuk pembangunan laman web Ia mudah dan mudah digunakan. Dengan menggabungkan perpustakaan PHP dan OpenCV, kami boleh mencapai tugas pemprosesan imej yang cekap.

Langkah khusus:

  1. Persediaan:
    Sebelum bermula, kita perlu memasang perpustakaan PHP dan OpenCV. Untuk kemudahan, kami boleh menggunakan sambungan php-opencv, iaitu antara muka OpenCV untuk PHP yang membolehkan kami menggunakan perpustakaan OpenCV secara langsung dalam PHP.
  2. Memuatkan imej:
    Pertama, kita perlu memuatkan imej untuk diproses. Dalam PHP, anda boleh menggunakan fungsi seperti imagecreatefromjpeg() dan imagecreatefrompng() untuk memuatkan imej dalam format yang berbeza. Berikut ialah contoh kod:
$image = imagecreatefromjpeg('input.jpg');
  1. Pangkas imej:
    Untuk melakukan pemangkasan imej, kita perlu menentukan kawasan yang diminati. Dalam OpenCV, anda boleh menggunakan fungsi cv2.rectangl() untuk menentukan koordinat dan saiz kawasan yang diminati. Berikut ialah contoh kod:
$x = 100;
$y = 100;
$width = 200;
$height = 200;

// 创建一个矩形
$rect = cv2.rectangle($image, array($x, $y), array($x + $width, $y + $height), (0, 255, 0), 2);

// 裁剪图像
$cropped_image = imagecrop($image, $rect);

Dalam kod di atas, kami mencipta segi empat tepat dan kemudian menggunakan fungsi imagecrop() untuk memangkas imej.

  1. Pemprosesan pengisian:
    Apabila memangkas imej, kadangkala kawasan yang diminati melebihi sempadan imej. Untuk mengelakkan imej tidak lengkap, kita boleh menggunakan padding sempadan untuk melapik imej. Dalam OpenCV, anda boleh menggunakan fungsi cv2.copyMakeBorder() untuk menyelesaikan operasi pengisian. Berikut ialah contoh kod:
$border_width = 10;

// 填充边界
$padded_image = cv2.copyMakeBorder($cropped_image, $border_width, $border_width, $border_width, $border_width, cv2.BORDER_CONSTANT);

Dalam kod di atas, kami melakukan pelapik sempadan dengan menentukan lebar sempadan dan jenis pelapik. Dalam contoh ini, kami menggunakan jenis isian malar.

  1. Simpan imej:
    Akhir sekali, kita boleh menggunakan fungsi seperti imagejpeg() atau imagepng() untuk menyimpan imej yang diproses ke fail yang ditentukan. Berikut ialah contoh kod:
imagejpeg($padded_image, 'output.jpg');

Dalam kod di atas, kami menggunakan fungsi imagejpeg() untuk menyimpan imej dalam format JPG.

Kesimpulan:
Dengan menggabungkan perpustakaan PHP dan OpenCV, kami boleh melaksanakan pemangkasan imej dengan mudah dan mengekalkan operasi padding. Menggunakan kaedah ini, kita boleh memilih kawasan yang diminati daripada imej asal dan melakukan pemprosesan atau analisis selanjutnya. Semoga artikel ini dapat membantu anda!

Atas ialah kandungan terperinci Cara memangkas imej dan menyimpan padding menggunakan perpustakaan PHP dan OpenCV. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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