- 1. Traitement d'image à l'aide de la fenêtre de l'éditeur MATLAB
- 2. Traitement d'image avec l'interface graphique MATLAB
- Création d'une interface utilisateur graphique MATLAB pour le traitement d'images
- Code GUI MATLAB pour le traitement d'image
- Exécutez le code GUI MATLAB pour le traitement d'image
Imaginez que vous pointez votre appareil photo vers un objet et que l'appareil photo vous indique le nom de cet objet, oui, Google Lens dans les téléphones intelligents Android fait la même chose en utilisant le traitement d'image. Cela donne à l'ordinateur une vision pour détecter et reconnaître les choses et prendre des mesures en conséquence. Le traitement d'image a de nombreuses applications telles que la détection et la reconnaissance des visages, l'impression du pouce, la réalité augmentée, l'OCR, la numérisation de codes à barres et bien d'autres. Il existe de nombreux logiciels disponibles pour le traitement d'images, parmi lesquels MATLAB est le plus adapté pour commencer.
MATLAB peut effectuer de nombreuses opérations de traitement d'image avancées, mais pour commencer avec le traitement d'image dans MATLAB, nous expliquerons ici certaines opérations de base telles que RVB vers gris, faire pivoter l'image, conversion binaire, etc. clarté, filtrage en utilisant les fonctions expliquées dans ce tutoriel.
Avant de continuer, si vous êtes nouveau dans MATLAB, vous pouvez consulter nos précédents tutoriels MATLAB pour mieux comprendre:
- Premiers pas avec MATLAB: une introduction rapide
- Interfaçage Arduino avec MATLAB - LED clignotante
- Contrôle de moteur à courant continu avec MATLAB et Arduino
- Contrôle du moteur pas à pas avec MATLAB et Arduino
- Comment tracer un graphique de température en temps réel avec MATLAB
Dans MATLAB, comme toujours, il existe deux façons d'exécuter n'importe quel algorithme de traitement d'image, l'une consiste à entrer directement la commande dans la fenêtre de l'éditeur / commande et l'autre en créant une interface graphique pour celle-ci. Ici, nous allons vous montrer les deux méthodes pour effectuer des opérations de base de traitement d'image dans MATLAB.
1. Traitement d'image à l'aide de la fenêtre de l'éditeur MATLAB
Maintenant, nous allons écrire le code pour effectuer certaines opérations de base de traitement d'image dans la fenêtre de l'éditeur. Pour vous familiariser avec toute la terminologie de base utilisée dans MATLAB, suivez le lien. Copiez et collez le code ci-dessous dans la fenêtre de l'éditeur, a = imread ('F: \ circuit digest \ traitement d'image en utilisant matlab \ camerman.jpg'); sous-tracé (2,3,1); imshow (a); b = rgb2gray (a); sous-tracé (2,3,2); imshow (b); c = im2bw (a); sous-tracé (2,3,3); imshow (c); d = imadjust (b); sous-tracé (2,3,4); imshow (d); e = a; e = rgb2gray (e); sous-tracé (2,3,5); imhist (e); imfinfo ('F: \ circuit digest \ traitement d'image utilisant matlab \ beard-man.jpg') = size (a) % colormap ('spring')
Dans la variable 'a', nous importons une image à l'aide de la commande imread ('filename') , puis faisons un tracé de la ligne '2' et de la colonne '3' en utilisant le sous-tracé (ligne, colonne, position) et affichant l'image importée sur la position ' 1'. Pour afficher l'image, nous utilisons la commande imshow ('filename') .
Vous trouverez ci-dessous quelques commandes pour effectuer un traitement de base sur l'image téléchargée:
- Dans la variable 'b', nous convertissons l'image RVB en image d'intensité en niveaux de gris en utilisant la commande rgb2gray ('filename') et en l'affichant dans le tracé à la position '2'.
- Dans la variable 'c', nous convertissons l'image en image binaire ou vous pouvez dire au format '0' (noir) et '1' (blanc) en utilisant la commande im2bw ('filename') et en l'affichant dans plot sur position «3».
- Dans la variable 'd', nous ajustons ou mappons les valeurs d'intensité de l'image en niveaux de gris en utilisant la commande imadjust ('filename') et en l'affichant dans le tracé sur la position '4'.
- Dans la variable 'e', nous traçons l'histogramme de l'image en niveaux de gris en utilisant la commande imhist ('filename') et en l'affichant dans le tracé à la position '5'. Pour tracer l'histogramme, vous devez toujours convertir l'image en niveaux de gris et vous pourrez ensuite voir l'histogramme de ce fichier graphique.
- La commande Imfinfo ('filename with location') est utilisée pour afficher des informations sur le fichier graphique.
- La commande = size ('filename') est utilisée pour afficher la taille et les plans de couleur d'un fichier graphique particulier.
- colormap ('spring') est utilisé pour changer le type de palette de couleurs du fichier graphique. Ici, dans mon code, j'ai défini cette commande comme commentaire mais vous pouvez l'utiliser en supprimant le signe de pourcentage. Il existe de nombreux types de couleurs dans MATLAB comme Jet, HSV, Hot, Cool, Summer, Autumn, Winter, Grey, Bone, Copper, Pink, Lines et Spring.
Comme ceux-ci, il existe un certain nombre de commandes dans MATLAB qui peuvent être utilisées pour effectuer différentes tâches, vous pouvez vérifier les fonctions de traitement d'image dans MATLAB en suivant le lien.
2. Traitement d'image avec l'interface graphique MATLAB
Création d'une interface utilisateur graphique MATLAB pour le traitement d'images
Pour créer une GUI (Graphical User Interface) pour le traitement d'image, lancez l'interface graphique en tapant la commande ci-dessous dans la fenêtre de commande .
guider
Une fenêtre contextuelle s'ouvre, puis sélectionnez une nouvelle interface graphique vierge comme indiqué dans l'image ci-dessous,
Maintenant, nous devons choisir le nombre de boutons poussoirs (chaque bouton poussoir effectuera une tâche différente) et un axe pour afficher l'image.
Pour redimensionner ou changer la forme du bouton poussoir ou des axes, il suffit de cliquer dessus et vous pourrez faire glisser les coins du bouton. En double-cliquant sur l'un d'entre eux, vous pourrez changer la couleur, la chaîne, l'étiquette et d'autres options de ce bouton particulier. Après la personnalisation, cela ressemblera à ceci
Vous pouvez personnaliser les boutons selon votre choix. Désormais, lorsque vous enregistrez cela, un code est généré dans la fenêtre Editeur de MATLAB. Modifiez le code généré pour définir la tâche pour différents boutons poussoirs. Ci-dessous, nous avons édité le code MATLAB.
Code GUI MATLAB pour le traitement d'image
Le code MATLAB complet pour le traitement d'image à l'aide de l'interface graphique MATLAB est donné à la fin de ce projet. De plus, nous incluons le fichier GUI (.fig) et le fichier de code (.m) ici pour téléchargement, à l'aide desquels vous pouvez personnaliser les boutons ou la taille des axes selon vos besoins. Nous avons édité le code généré comme expliqué ci-dessous.
Dans la fonction 'uploadimage' , copiez et collez le code ci-dessous pour insérer le fichier à partir du PC. Ici, la commande uigetfile ('type d'extension d'image') est utilisée pour importer une image dans l'interface graphique MATLAB. Lisez ce fichier en utilisant la commande imread () puis affichez-le avec la commande imshow () sur axes1 en utilisant les axes (handles.axes1) . Maintenant, avec la commande setappdata (), stockez la variable dans l'interface graphique afin que la variable soit accessible d'une partie de l'interface graphique à l'autre partie de l'interface graphique.
a = uigetfile ('. jpg') a = imread (a); axes (poignées.axes1); imshow (a); setappdata (0, 'a', a)
Maintenant, dans chaque fonction, vous verrez la commande getappdata () qui est utilisée pour récupérer des données qui sont stockées à l'aide de setappdata () dans l'interface graphique.
Ici, nous allons expliquer huit fonctions couramment utilisées dans le traitement d'image
S. Non. |
Commander |
Nom du bouton |
Tâche à exécuter |
1. |
uigetfile () |
Télécharger l'image |
Cliquez pour importer l'image à partir du disque |
2. |
rgb2gray () |
RVB à gris |
Cliquez pour convertir l'image RVB en niveaux de gris |
3. |
im2bw () |
Convertir en image binaire |
Cliquez pour convertir l'image en binaire |
4. |
- |
RÉINITIALISER |
Cliquez pour réinitialiser l'image comme originale |
5. |
imhist () |
Histogramme |
Cliquez pour voir l'histogramme de l'image |
6. |
imcomplement () |
Image complémentaire |
Cliquez pour vérifier l'image complémentaire |
sept. |
edge (nom de fichier, méthode) |
Détection des bords |
Cliquez pour détecter les bords de l'image |
8. |
imrotate (nom de fichier, angle) |
Le sens des aiguilles d'une montre |
Cliquez pour faire pivoter l'image dans le sens des aiguilles d'une montre |
9. |
imrotate (nom de fichier, angle) |
Rotation anti-horaire |
Cliquez pour faire pivoter l'image dans le sens anti-horaire |
1. Convertissez l'image RVB en niveaux de gris
Dans la fonction 'rgb2gray' , copiez et collez le code ci-dessous pour convertir l'image RVB en niveaux de gris à l'aide de la commande rgb2gray () .
a = getappdata (0, 'a'); agray = rgb2gray (a); axes (poignées.axes1); imshow (agray);
2. Convertir en image binaire
Dans la fonction 'im2bw' , copiez et collez le code ci-dessous pour convertir l'image en image binaire ou vous pouvez dire au format '0' (noir) et '1' (blanc) en utilisant la commande im2bw () .
a = getappdata (0, 'a'); abw = im2bw (a); axes (poignées.axes1); imshow (abw);
3. Rétablir l'image d'origine
Dans la fonction «réinitialiser» , copiez et collez le code ci-dessous pour réinitialiser l'image modifiée dans l'image d'origine.
a = getappdata (0, 'a'); axes (poignées.axes1); imshow (a);
4. Tracer l'histogramme de l'image
Dans la fonction 'histogramme' , copiez et collez le code ci-dessous pour tracer l'histogramme de l'image en niveaux de gris en utilisant la commande imhist ('filename') et affichez-le sur les axes1 . Pour tracer l'histogramme, vous devez toujours convertir l'image en niveaux de gris et vous pourrez alors voir l'histogramme de ce fichier graphique.
a = getappdata (0, 'a'); ahist = a; ahist = rgb2gray (ahist); axes (poignées.axes1); imhist (ahist);
5. Convertir en image complémentaire
Dans la fonction 'complémentimage' , copiez et collez le code ci-dessous pour voir le complément du fichier graphique inséré en utilisant la commande imcomplement () .
a = getappdata (0, 'a'); acomp = a; acomp = imcomplement (acomp); axes (poignées.axes1); imshow (acomp);
6. Détection des bords à l'aide de la méthode Canny
Dans la fonction 'edge' , copiez et collez le code ci-dessous pour détecter et trouver les contours dans l'image en niveaux de gris en utilisant la commande edge ('filename', 'method') . À la place de la méthode, vous pouvez choisir parmi ces trois, Canny, Prewitt et montage . Nous utilisons la méthode Canny pour la détection des contours. De plus, vous ne pouvez pas détecter le bord directement à partir de l'image d'origine, vous devez d'abord le convertir en niveaux de gris, puis vous pouvez détecter les bords.
a = getappdata (0, 'a'); aedge = a; aedge = rgb2gray (aedge); aedge = edge (aedge , 'Canny') ' axes (handles.axes1); imshow (aedge);
7. Faire pivoter l'image dans le sens des aiguilles d'une montre
Dans la fonction 'dans le sens des aiguilles d'une montre' , copiez et collez le code ci-dessous pour faire pivoter l'image dans le sens des aiguilles d'une montre en utilisant la commande imrotate (nom de fichier, 'angle')
a = getappdata (0, 'a'); aclock = a; aclock = imrotate (aclock, 270); axes (poignées.axes1); imshow (aclock);
8. Faire pivoter l'image dans le sens anti-horaire
Dans la fonction 'anti-horaire' , copiez et collez le code ci-dessous pour faire pivoter l'image dans le sens anti-horaire en utilisant la commande imrotate (nom de fichier, 'angle')
a = getappdata (0, 'a'); aclock = a; aclock = imrotate (aclock, 90); axes (poignées.axes1); imshow (aclock);
Exécutez le code GUI MATLAB pour le traitement d'image
Maintenant, cliquez sur le bouton 'RUN' pour exécuter le code édité dans le fichier.m
MATLAB peut prendre quelques secondes pour répondre, ne cliquez sur aucun bouton GUI jusqu'à ce que MATLAB affiche un message occupé dans le coin inférieur gauche comme indiqué ci-dessous,
Lorsque tout est prêt, importez l'image depuis le PC en cliquant sur le bouton «Télécharger l'image». Maintenant, vous pourrez convertir ou faire pivoter l'image en cliquant sur n'importe quel bouton en conséquence. Le tableau ci-dessous vous montrera la tâche que nous effectuons en cliquant sur un bouton particulier:
Le résultat en cliquant sur chaque bouton donnera ci-dessous,
Le fonctionnement complet de chaque bouton est démontré dans la vidéo ci-dessous.
Vous pouvez même effectuer un niveau avancé de traitement d'image avec la boîte à outils de traitement d'image que vous pouvez acheter sur le site officiel de MATHWORKS, certaines opérations de niveau avancé sont répertoriées ci-dessous:
- Opérations géométriques
- Bloquer les opérations
- Filtrage linéaire et conception de filtres
- Se transforme
- Analyse et amélioration d'image
- Opérations sur les images binaires