Maison  >  Article  >  développement back-end  >  Comment recadrer des images et conserver le remplissage à l'aide des bibliothèques PHP et OpenCV

Comment recadrer des images et conserver le remplissage à l'aide des bibliothèques PHP et OpenCV

PHPz
PHPzoriginal
2023-07-17 12:54:071518parcourir

Comment recadrer des images et conserver le remplissage à l'aide des bibliothèques PHP et OpenCV

Introduction :
Le traitement d'image joue un rôle essentiel dans le domaine de l'informatique moderne. Le recadrage d'image est une tâche courante dans le traitement d'image, qui nous permet de sélectionner des régions d'intérêt à partir de l'image originale et d'effectuer une analyse ou un traitement plus approfondi sur celles-ci. Dans cet article, nous présenterons comment utiliser le langage de programmation PHP et la bibliothèque OpenCV pour recadrer les images et conserver le remplissage.

OpenCV est une bibliothèque de vision par ordinateur open source largement utilisée qui fournit une série de puissantes fonctions de traitement d'image. PHP est un langage de script largement utilisé pour le développement de sites Web. Il est simple et facile à utiliser. En combinant les bibliothèques PHP et OpenCV, nous pouvons réaliser des tâches de traitement d'image efficaces.

Étapes spécifiques :

  1. Préparation :
    Avant de commencer, nous devons installer les bibliothèques PHP et OpenCV. Pour plus de commodité, nous pouvons utiliser l'extension php-opencv, qui est une interface OpenCV pour PHP qui nous permet d'utiliser la bibliothèque OpenCV directement en PHP.
  2. Chargement de l'image :
    Tout d'abord, nous devons charger l'image à traiter. En PHP, vous pouvez utiliser des fonctions telles que imagecreatefromjpeg() et imagecreatefrompng() pour charger des images dans différents formats. Voici un exemple de code :
$image = imagecreatefromjpeg('input.jpg');
  1. Recadrer l'image :
    Pour recadrer l'image, nous devons spécifier la zone d'intérêt. Dans OpenCV, vous pouvez utiliser la fonction cv2.rectangl() pour spécifier les coordonnées et la taille de la région d'intérêt. Voici un exemple de code :
$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);

Dans le code ci-dessus, nous créons un rectangle puis utilisons la fonction imagecrop() pour recadrer l'image.

  1. Traitement du rembourrage :
    Lors du recadrage d'une image, il arrive parfois que la zone d'intérêt dépasse la limite de l'image. Pour éviter d'avoir une image incomplète, nous pouvons utiliser un remplissage de limite pour remplir l'image. Dans OpenCV, vous pouvez utiliser la fonction cv2.copyMakeBorder() pour terminer l'opération de remplissage. Voici un exemple de code :
$border_width = 10;

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

Dans le code ci-dessus, nous effectuons un remplissage de bordure en spécifiant la largeur de la bordure et le type de remplissage. Dans cet exemple, nous utilisons le type de remplissage constant.

  1. Enregistrer l'image :
    Enfin, nous pouvons utiliser des fonctions telles que imagejpeg() ou imagepng() pour enregistrer l'image traitée dans un fichier spécifié. Voici un exemple de code :
imagejpeg($padded_image, 'output.jpg');

Dans le code ci-dessus, nous utilisons la fonction imagejpeg() pour enregistrer l'image au format JPG.

Conclusion :
En combinant les bibliothèques PHP et OpenCV, nous pouvons facilement implémenter le recadrage d'images et conserver les opérations de remplissage. Grâce à cette méthode, nous pouvons sélectionner des régions d’intérêt à partir de l’image originale et effectuer un traitement ou une analyse ultérieure. J'espère que cet article vous sera utile !

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn