Rumah pembangunan bahagian belakang tutorial php Pustaka PHP dan OpenCV: Bagaimana untuk memangkas imej secara automatik?

Pustaka PHP dan OpenCV: Bagaimana untuk memangkas imej secara automatik?

Jul 18, 2023 pm 11:42 PM
php opencv Pemotongan automatik

Pustaka PHP dan OpenCV: Bagaimana untuk memangkas imej secara automatik?

Dalam pemprosesan imej, memangkas imej adalah keperluan biasa. Kadangkala kita perlu memangkas imej secara automatik untuk membuang tepi yang tidak diperlukan atau mengurangkan imej kepada saiz yang dikehendaki. Perpustakaan PHP dan OpenCV menyediakan fungsi yang berkuasa untuk mencapai tugas memotong imej secara automatik. Artikel ini akan menunjukkan kepada anda cara menggunakan PHP dan perpustakaan OpenCV untuk memangkas imej secara automatik dan memberikan contoh kod untuk membantu anda memahami dengan lebih baik.

Langkah 1: Pasang perpustakaan PHP dan OpenCV

Untuk menggunakan perpustakaan PHP dan OpenCV untuk pemprosesan imej, anda perlu memasang perpustakaan PHP dan OpenCV terlebih dahulu. Anda boleh memasang pakej yang diperlukan dengan menjalankan arahan berikut dalam terminal:

sudo apt-get install php
sudo apt-get install php-opencv
Salin selepas log masuk

Setelah dipasang, anda perlu mendayakan sambungan OpenCV dalam PHP. Buka fail php.ini dan tambah baris berikut:

extension=opencv.so
Salin selepas log masuk

Selepas menyimpan dan menutup fail, mulakan semula pelayan Apache untuk perubahan berkuat kuasa.

Langkah 2: Muatkan imej

Sebelum kita mula memangkas imej, kita perlu memuatkan imej terlebih dahulu. Dengan menggunakan fungsi cvLoadImage dari perpustakaan OpenCV kami boleh memuatkan imej dengan mudah. Berikut ialah contoh kod:

$filePath = 'path/to/your/image.jpg';
$image = cvimread($filePath);
if (empty($image)) {
    die('Could not load the image.');
}
Salin selepas log masuk

Dalam contoh ini, kami menggunakan fungsi imread untuk memuatkan imej daripada laluan yang ditentukan. Jika pemuatan gagal, mesej ralat akan dikeluarkan.

Langkah 3: Pemotongan Imej

Setelah kami berjaya memuatkan imej, kami boleh mula melakukan pemangkasan automatik. Operasi memotong imej memerlukan penentuan sempadan tanaman. Kami akan menggunakan fungsi cvcv2DRotate daripada perpustakaan OpenCV untuk mencari sempadan imej secara automatik.

Berikut ialah contoh kod untuk menunjukkan cara memangkas imej secara automatik:

// 转换为灰度图像
$grayImage = cvcvtColor($image, cvCOLOR_BGR2GRAY);

// 检测边缘
$edges = cvCanny($grayImage, 50, 150);

// 获取轮廓
$contours = cvindContours($edges, cvRETR_EXTERNAL, cvCHAIN_APPROX_SIMPLE);

// 计算最大轮廓
$maxArea = 0;
$maxContour = null;
foreach ($contours as $contour) {
    $area = cvcontourArea($contour);
    if ($area > $maxArea) {
        $maxArea = $area;
        $maxContour = $contour;
    }
}

// 获取边界框
$rect = cvoundingRect($maxContour);

// 裁剪图像
$croppedImage = cvgetRectSubPix($image, $rect['size'], $rect['center']);
Salin selepas log masuk

Dalam contoh ini, kami mula-mula menukar imej kepada skala kelabu dan kemudian menggunakan algoritma Canny untuk mengesan tepi. Seterusnya, kami mencari kontur dalam imej dan mengira kotak sempadan kontur terbesar. Akhir sekali, kami menggunakan fungsi getRectSubPix untuk memangkas imej.

Langkah 4: Simpan Imej Pangkas

Selepas kami selesai memangkas imej, kami mempunyai pilihan untuk menyimpan imej yang dipangkas ke fail. Berikut ialah kod sampel untuk melaksanakan fungsi menyimpan imej:

$savePath = 'path/to/save/croppedImage.jpg';
cvimwrite($savePath, $croppedImage);
Salin selepas log masuk

Dalam contoh ini, kami menggunakan fungsi imwrite untuk menyimpan imej yang dipangkas sebagai fail dengan laluan yang ditentukan.

Kesimpulan

Dengan menggunakan perpustakaan PHP dan OpenCV, kami boleh melaksanakan fungsi memangkas imej secara automatik dengan mudah. Artikel ini menyediakan langkah-langkah yang diperlukan untuk pemasangan dan konfigurasi, serta contoh kod terperinci untuk membantu anda memahami keseluruhan proses. Saya harap artikel ini membantu anda dalam tugas anda memangkas imej secara automatik.

Atas ialah kandungan terperinci Pustaka PHP dan OpenCV: Bagaimana untuk memangkas imej secara automatik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

7 Fungsi PHP Saya Menyesal Saya Tidak Tahu Sebelum ini 7 Fungsi PHP Saya Menyesal Saya Tidak Tahu Sebelum ini Nov 13, 2024 am 09:42 AM

Jika anda seorang pembangun PHP yang berpengalaman, anda mungkin merasakan bahawa anda telah berada di sana dan telah melakukannya. Anda telah membangunkan sejumlah besar aplikasi, menyahpenyahpepijat berjuta-juta baris kod dan mengubah suai sekumpulan skrip untuk mencapai op

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Dec 20, 2024 am 11:31 AM

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Apr 05, 2025 am 12:04 AM

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Feb 07, 2025 am 11:57 AM

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

Program PHP untuk mengira vokal dalam rentetan Program PHP untuk mengira vokal dalam rentetan Feb 07, 2025 pm 12:12 PM

Rentetan adalah urutan aksara, termasuk huruf, nombor, dan simbol. Tutorial ini akan mempelajari cara mengira bilangan vokal dalam rentetan yang diberikan dalam PHP menggunakan kaedah yang berbeza. Vokal dalam bahasa Inggeris adalah a, e, i, o, u, dan mereka boleh menjadi huruf besar atau huruf kecil. Apa itu vokal? Vokal adalah watak abjad yang mewakili sebutan tertentu. Terdapat lima vokal dalam bahasa Inggeris, termasuk huruf besar dan huruf kecil: a, e, i, o, u Contoh 1 Input: String = "TutorialSpoint" Output: 6 menjelaskan Vokal dalam rentetan "TutorialSpoint" adalah u, o, i, a, o, i. Terdapat 6 yuan sebanyak 6

Terangkan pengikatan statik lewat dalam php (statik: :). Terangkan pengikatan statik lewat dalam php (statik: :). Apr 03, 2025 am 12:04 AM

Mengikat statik (statik: :) Melaksanakan pengikatan statik lewat (LSB) dalam PHP, yang membolehkan kelas panggilan dirujuk dalam konteks statik dan bukannya menentukan kelas. 1) Proses parsing dilakukan pada masa runtime, 2) Cari kelas panggilan dalam hubungan warisan, 3) ia boleh membawa overhead prestasi.

Apakah kaedah Magic PHP (__construct, __destruct, __call, __get, __set, dll) dan menyediakan kes penggunaan? Apakah kaedah Magic PHP (__construct, __destruct, __call, __get, __set, dll) dan menyediakan kes penggunaan? Apr 03, 2025 am 12:03 AM

Apakah kaedah sihir PHP? Kaedah sihir PHP termasuk: 1. \ _ \ _ Membina, digunakan untuk memulakan objek; 2. \ _ \ _ Destruct, digunakan untuk membersihkan sumber; 3. \ _ \ _ Call, mengendalikan panggilan kaedah yang tidak wujud; 4. \ _ \ _ Mendapatkan, melaksanakan akses atribut dinamik; 5. \ _ \ _ Set, melaksanakan tetapan atribut dinamik. Kaedah ini secara automatik dipanggil dalam situasi tertentu, meningkatkan fleksibiliti dan kecekapan kod.

See all articles