Maison >développement back-end >tutoriel php >Méthode de détection des contours et des contours d'images à l'aide des bibliothèques PHP et OpenCV

Méthode de détection des contours et des contours d'images à l'aide des bibliothèques PHP et OpenCV

PHPz
PHPzoriginal
2023-07-17 15:37:481337parcourir

Comment utiliser les bibliothèques PHP et OpenCV pour la détection des bords et des traits d'image

Introduction :
Dans le domaine de la vision par ordinateur et du traitement d'image, la détection des bords d'image est une technologie importante pour identifier les bords et les contours des images, et les traits d'image ajoutent des lignes de bord à une image pour la rendre plus accrocheuse et proéminente. Cet article expliquera comment utiliser les bibliothèques PHP et OpenCV pour implémenter la détection des bords et des traits d'image, et fournira des exemples de code correspondants.

1. Préparation
Pour utiliser les bibliothèques PHP et OpenCV pour la détection et le traçage des bords d'image, vous devez suivre les étapes suivantes pour vous préparer :

  1. Installer les bibliothèques PHP et OpenCV : Tout d'abord, assurez-vous que les bibliothèques PHP et OpenCV sont installées. . Vous pouvez vérifier si les bibliothèques PHP et OpenCV sont installées en tapant la commande suivante dans le terminal :

    php -v

    Si elles ne sont pas installées, vous pouvez utiliser la commande suivante pour installer les bibliothèques PHP et OpenCV :

    sudo apt-get install php
    sudo apt-get install php-opencv
  2. Obtenir une image de test : Préparez-en une pour le test. Les images peuvent être téléchargées sur Internet ou utiliser vos propres images. Assurez-vous que l'image se trouve dans le même répertoire que le fichier PHP et nommez-la "test.jpg".

2. Détection des bords de l'image
Tout d'abord, nous présenterons comment utiliser les bibliothèques PHP et OpenCV pour la détection des bords de l'image. Voici un exemple de code pour implémenter cette étape :

<?php
// 加载图像
$image = cvimread("test.jpg");
// 转换为灰度图像
$gray = cvcvtColor($image, CV_BGR2GRAY);
// 进行边缘检测
$edges = cvCanny($gray, 50, 150);
// 显示结果
cvimshow("Edges", $edges);
cvwaitKey();
?>

Dans le code ci-dessus, l'image "test.jpg" est d'abord chargée à l'aide de la fonction cvimread. Ensuite, utilisez la fonction cvcvtColor pour convertir l'image en image en niveaux de gris. Cette étape est due au fait que la détection des contours est souvent effectuée sur les images en niveaux de gris. Ensuite, la détection des contours est effectuée à l'aide de la fonction cvCanny, où 50 et 150 représentent respectivement les seuils bas et haut du seuil. Enfin, utilisez la fonction cvimshow pour afficher les bords détectés et utilisez la fonction cvwaitKey pour attendre que l'utilisateur appuie sur n'importe quelle touche avant de fermer la fenêtre d'affichage.

3. Image Stroke
Ensuite, nous présenterons comment utiliser les bibliothèques PHP et OpenCV pour tracer une image. Voici un exemple de code pour implémenter cette étape :

<?php
// 加载图像
$image = cvimread("test.jpg");
// 转换为灰度图像
$gray = cvcvtColor($image, CV_BGR2GRAY);
// 进行边缘检测
$edges = cvCanny($gray, 50, 150);
// 转换为彩色图像
$color = cvcvtColor($edges, CV_GRAY2BGR);
// 使用矩形框标记边缘
$contours = cvindContours($edges, cvCV_RETR_EXTERNAL, cvCV_CHAIN_APPROX_SIMPLE);
cvdrawContours($color, $contours, -1, [0, 255, 0], 2);
// 显示结果
cvimshow("Edges with Contours", $color);
cvwaitKey();
?>

Dans le code ci-dessus, les mêmes étapes que pour la détection des bords de l'image sont d'abord effectuées. Ensuite, utilisez la fonction cvcvtColor pour convertir l'image de bord en image couleur. Ensuite, utilisez la fonction cv indContours pour trouver le contour sur le bord. cvCV_RETR_EXTERNAL signifie que seul le contour extérieur est renvoyé et cvCV_CHAIN_APPROX_SIMPLE signifie que seules les informations du point d'inflexion sont conservées. Enfin, utilisez la fonction cvdrawContours pour marquer les contours sur l'image couleur, en spécifiant la couleur et la largeur du trait. Enfin, la fonction cvimshow est utilisée pour afficher l'image avec le trait, et la fonction cvwaitKey est utilisée pour attendre que l'utilisateur appuie sur n'importe quelle touche avant de fermer la fenêtre d'affichage.

Résumé :
En utilisant les bibliothèques PHP et OpenCV, nous pouvons facilement implémenter des fonctions de détection des bords et de contour de l'image. Les exemples de code fournis ci-dessus montrent comment charger des images, effectuer une détection des contours, convertir des types d'images, rechercher des contours et dessiner des contours à l'aide des bibliothèques PHP et OpenCV. En exécutant ces codes, nous pouvons obtenir une image contenant des bords et des contours et visualiser les résultats à travers la fenêtre d'affichage.

J'espère que le contenu de cet article pourra aider les lecteurs à comprendre comment utiliser les bibliothèques PHP et OpenCV pour la détection et le traçage des bords d'image, et pourra être appliqué à de réels projets de traitement d'image. Grâce à un apprentissage et à une pratique continus, nous pouvons améliorer encore nos capacités de traitement d'images et développer des algorithmes de traitement d'images plus complexes et plus efficaces.

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