Transcription
1. Introduction: Aujourd'hui, nous
allons le créer. Nous allons dessiner n'importe quoi
en l'air à l'aide de notre webcam. Comme vous pouvez le voir dans cet exemple, nous dessinons
ici une ligne à l'aide
d'un pointeur dans les airs Ici, nous dessinons une ligne dans les airs
de différentes couleurs, telles que le bleu, le
vert, le rouge, le jaune Ce projet est connu sous le nom de dessin de
webcam en direct à l'aide d'OpenCV Ici, nous utilisons la méthode
de suivi des objets pour dessiner n'importe quoi dans les airs à l'aide d'OpenCV Notre programme prend l'entrée
vidéo de la webcam et suit l'
objet que nous déplaçons. Après avoir identifié l'objet, il créera des contios avec précision Ensuite, il
peindra tous vos dessins sur l'écran de sortie. Je m'appelle Jonathan Sarkar. Je suis développeur Web Fostek, programmeur
Python et instructeur en
ligne Et je vais vous guider tout
au long de ce projet. Comment pouvons-nous créer ce projet
en utilisant Python et Opens ? Si vous connaissez le langage de programmation
Python, nous pouvons commencer notre voyage ensemble. Merci beaucoup
2. Aperçu du projet: Ici, nous allons
utiliser un traceur. Nous allons utiliser
n'importe quel traceur coloré. Mais pour ce tutoriel,
je vais
utiliser un tracker de couleur bleue. Vous pouvez également utiliser une couleur rouge. Dans ce projet, vous pouvez dessiner
des lignes de différentes couleurs. Pour notre projet, nous
allons utiliser au total quatre couleurs : bleu, vert, rouge et jaune. Tu peux utiliser bien plus que ça. Permettez-moi donc de vous montrer
une démonstration la façon dont notre projet va fonctionner. Après avoir appuyé sur le bouton Exécuter, comme vous pouvez le voir, la fenêtre du
détecteur de couleur
s'affiche d'abord . À partir de là, à l'aide de ce curseur, vous pouvez cibler n'importe quelle couleur Et comme vous le savez, par défaut, nous ciblons la couleur bleue, et nous devons attendre un certain
temps pour démarrer la webcam. Vous pouvez maintenant voir ici qu'il
a ouvert au total trois fenêtres, une fenêtre
en direct, une
fenêtre de peinture et une fenêtre de masque. Et je vais aligner
ces fenêtres côte à côte. Et maintenant je vais commencer
à dessiner. Ici, je prends déjà un pointeur bleu et je le
cache entre mon doigt. Maintenant, je vais commencer à
dessiner en l'utilisant. Comme vous pouvez le voir, notre caméra suit notre marqueur
et trace une ligne. Il commence à dessiner
en bleu, et vous pouvez voir le dessin
dans notre fenêtre de dessin en direct, vous pouvez
également voir
le même dessin dans notre fenêtre de peinture blanche
et dans notre fenêtre de masque, vous pouvez voir le
masque binaire dans notre fenêtre de masque, vous pouvez remarquer qu'il ne suit que
le marqueur de couleur bleue. Il ne suit rien
d'autre de cette vidéo. Maintenant, je vais masquer ce marqueur et commencer à dessiner à
partir d'un point différent. Je vais commencer à dessiner à
partir de cette position. Vous pouvez remarquer,
encore une fois, qu'il a commencé à tracer le chemin
à partir de cette position. De cette façon, vous pouvez tracer ligne
différente à une position
différente. Maintenant, laissez-moi vous montrer comment
pouvons-nous changer de couleur ? Comment pouvons-nous changer la couleur
de cette ligne de trait ? Pour cela, nous devons déplacer
le pointeur sur le bouton de couleur. Au début, je vais
déplacer ce pointeur sur le bouton de couleur
verte et maintenant
il sélectionne la couleur verte. Si je commence à dessiner, vous pouvez maintenant le
voir dessiner la ligne
avec des couleurs vertes. De même, si vous
souhaitez changer de couleur, vous devez placer votre
marqueur sur la couleur suivante. Pour l'instant, je vais
sélectionner la couleur rouge. Maintenant, il va commencer à dessiner une ligne de
trait de couleur rouge. De la même manière, vous pouvez
sélectionner la couleur jaune. Il vous suffit de placer votre
pointeur au-dessus du bouton jaune. Ensuite, vous pouvez commencer à dessiner
en utilisant une ligne de couleur jaune. C'est ainsi que vous pouvez
changer de couleur une par une. Si vous souhaitez
effacer cette fenêtre, vous devez déplacer votre marqueur
au-dessus du bouton Effacer. Comme vous pouvez le constater, après avoir déplacé ce marqueur au-dessus
du bouton Effacer, la fenêtre
est effacée. Encore une fois, vous pouvez commencer à
dessiner dans ce canevas. Nous avons construit avec succès
notre projet de dessin d'air. Et si vous voulez
clôturer ce projet, vous devez faire l'éloge de Small Cube. Ça va fermer les fenêtres. C'est le projet que nous
allons développer dans ce tutoriel et nous allons démarrer
à partir de la prochaine vidéo Merci d'avoir regardé
cette vidéo Sedue.
3. Créer une barre de piste de couleur dans openCV: Enfin, nous sommes dans l'éditeur de code
de mon studio de recherche. Donc, comme vous pouvez le voir dans mon caractère de travail
actuel, nous créons déjà un fichier
Python, Min point pi Commençons donc par
importer la bibliothèque. Dans un premier temps, je vais
importer la bibliothèque NumPi. Importez NumPi en tant que N P. Il est
utilisé pour les opérations numériques, y compris la création de
métriques et de tableaux Ensuite, je vais
importer le CV deux, notre module principal Importer le CV deux. Ici, je vais importer un autre
module important connu
sous le nom de DC et nous devons le saisir
depuis le module de collection. Je vais taper à
partir de la collection. Je souhaite importer le module
take, DEQE. Il s'agit d'une double activation D
à partir du module de collecte. Il est utilisé pour stocker des points afin
de dessiner efficacement. Ensuite, nous devons créer les guerres de pistes pour
le réglage des couleurs. Nous avons déjà découvert la barre de suivi dans nos projets précédents, je ne vais
donc pas développer
ce sujet en détail. Et comme vous le savez, pour
créer les barres de suivi, nous avons besoin d'une fonction d'assistance. Nous avons besoin d'une fonction de rappel. Donc, avant de créer
la barre de suivi, je vais déclarer
une fonction, Dave, et le nom de notre fonction est défini W. Ensuite, dans
la rondeur, je vais passer X comme perder Ensuite, dans cette fonction, je vais
simplement imprimer une déclaration
vierge, imprimer. Il s'agit d'une fonction d'espace réservé à la barre de suivi appelée ainsi Il est appelé chaque fois que
le Trager Vo change. Nous pouvons maintenant créer
les barres de suivi pour le réglage des couleurs car nous avons déjà créé une fonction
par défaut. Ici, dans un premier temps, nous devons fournir un nom tragb F cette minute CV à
point nommé Window. À l'intérieur des robes rondes, je voudrais fournir
un nom de trackb et le nom notre barre de commande est
Coloured Dejector Après avoir attribué le nom, nous devons créer jusqu'
à six barres de piste. La première est pour la teinte supérieure, puis nous allons créer
pour la saturation supérieure
et la teinte supérieure V. Ensuite, les trois autres sont la teinte inférieure, la saturation inférieure, la
saturation inférieure et la valeur inférieure v. Pour créer notre première barre de
suivi, tapez Amro, CV deux, point, créez
Trad baar Ensuite, à l'intérieur de
l'ombre contenue dans les rouleaux de codes, nous devons d'
abord fournir
le nom de la barre de suivi,
et ce nom de barre de suivi
est dans la teinte supérieure Ensuite, nous devons fournir le
nom de la fenêtre dans laquelle je veux montrer la barre de suivi,
et le nom de notre fenêtre
est Coloured Decator Je copie le nom de la fenêtre et je le mets dans
les codes doubles. Ensuite, nous devons
transmettre la valeur, la position initiale
du curseur de
la barre de suivi, lors de son premier déploiement Dans ce cas, je
veux commencer par 153. Ensuite, nous devons
transmettre la valeur de comptage. Il va définir
la valeur maximale du curseur de la barre de suivi et ici
je vais dépasser 180 Maintenant, la plage du curseur est comprise entre 0 et 180. Ensuite, nous devons
fournir la fonction par défaut. Comme vous pouvez le voir, le nom de notre
fonction par défaut est set value Je copie
donc le nom de la fonction
et je vais le mettre en tête. Pour le U supérieur, nous avons défini la valeur 153. Ensuite, nous allons
créer une saturation supérieure, je duplique
donc cette ligne. Dans un premier temps, je vais
changer la valeur U, du U supérieur à la saturation supérieure. Saturation supérieure. Tout d'abord,
je vais changer la valeur et je
vais la porter à 255. Ensuite, je vais
modifier la valeur de la plage, qui est également 255. Lorsque vous ouvrez le tragar, il définit la valeur
par défaut 255 Il va définir
la valeur par défaut 255 pour la saturation supérieure Ensuite, je vais
créer une valeur supérieure. Je duplique cette ligne, et ici je vais définir la valeur supérieure. Pour la valeur supérieure,
je vais également utiliser la valeur 255 et compter la valeur jusqu'à 55. Après avoir créé les barres de suivi
supérieures, vous devez créer
trois barres de suivi inférieures. Je duplique donc
toute cette section, et je vais
modifier les valeurs. C'est la teinte supérieure,
c'est la teinte inférieure. Pour un U inférieur, je vais
définir la valeur 64. Ensuite, je vais définir
et aussi
dire la valeur de plage 180 et notre valeur de
plage reste la même. Ensuite, pour une saturation plus faible, je vais définir la valeur 72 et
notre plage reste la même, pour la valeur inférieure, je vais définir la valeur 49
et sa plage reste la même. Par défaut, cette gamme de couleurs va détecter la couleur bleue. Cette barre de déplacement, autrement, nous pouvons l'appeler curseur
créé pour ajuster HSV. HSV représente
la teinte, la
saturation Nous créons ce
seuil de réglage HSV pour détecter
la couleur du marqueur et, par
défaut, la couleur bleu herst Nous n'avons donc pas besoin de trop nous
adapter. Lorsque nous ouvrons notre programme. Voici donc la première
partie de ce tutoriel. En gros, dans cette
partie, nous importons les bibliothèques et créons les tragars pour le réglage des
couleurs Dans la partie suivante
de ce didacticiel, nous allons créer
la flottabilité colorée et nous allons également
créer la configuration du dessin Merci donc d'
avoir regardé cette vidéo. Rendez-vous dans la prochaine partie.
4. Point de coloriage et mise en place du dessin: C'est bon de vous voir, les gars. Il s'agit de la deuxième
partie de ce didacticiel, et dans cette partie, nous allons effectuer la configuration des
points de coloration et des dessins. Dans un premier temps, nous devons
créer des gaufrettes colorées. Color Wafer est une mise à jour de liste permettant de stocker les
points de dessin pour chaque couleur, telle que le bleu, le
vert, le rouge ou le jaune Oui, nous allons
utiliser quatre couleurs au total pour dessiner sur notre toile le bleu, le
vert, le rouge et le jaune. Créons donc
les tampons de couleurs. Nous devons donc créer un d. Nous devons créer plusieurs matrices. Donc, d'abord, je vais
créer un d pour les points bleus, les points de couleur
bleue. B, points. Les points bleus sont égaux à
l'intérieur du carré en résine, je vais utiliser une méthode
du module deck Nous avons déjà saisi un modèle appelé DC, nous allons l'utiliser. Donc, pour taper, DE D QE. Pendant la pause d'exécution, ici, je vais utiliser un appel de fonction maxlength
maximum length, Mx AN, et je vais le
définir 1024 Je duplique cette ligne
et ensuite je vais
créer des points pour la couleur
verte, des points G. Je vais également créer des points rouges
Decor. Enfin, je vais
créer DCFord Euro Color. Je duplique cette ligne et
c'est pour les points Y. Il s'agit d'une liste de dates pour stocker les
points de dessin pour les marqueurs bleu, vert, rouge et ul. Chaque deck a une taille maximale de
1024 afin de limiter l'utilisation de la mémoire. Ces tableaux stockent les points. Je veux voir les coordonnées, qui sont dessinées avec une couleur
spécifique. Dans notre cas, nous
utilisons le bleu, vert, le rouge
et le jaune. Ensuite, nous devons indexer et marquer le point pour une couleur
spécifique. Donc pour cela, je vais
utiliser une variable pour la couleur bleue, je vais utiliser un indice de
soulignement bleu. Indice de soulignement bleu égal à zéro. Ensuite, je duplique cette ligne. Ensuite, je vais créer un
index pour la couleur verte. Ensuite, je vais
créer un sport d'index, couleur
rouge, et enfin, je vais créer un
sport d'index, couleur jaune. Index jaune. Ces
variables font office de pointeur vers le **** actuel dans le tableau de couleurs correspondant. Lorsqu'un nouveau trait commence
pour une couleur spécifique
, un nouveau deck est ajouté
au tableau correspondant. Supposons que je commence à dessiner à ce moment-là et que je trace cette ligne. Après avoir tracé cette
ligne, je crée ce marqueur. Maintenant, si je commence
à dessiner à cette position, cela créera un nouveau deck. fonction des couleurs,
nous allons stocker les coordonnées de
ce nouveau deck
dans ces points. Supposons que nous utilisions la couleur bleue, alors nous allons
enregistrer cette nouvelle fouille aux points bleus. Ne t'inquiète pas. Nous allons l' utiliser plus tard une fois
le projet terminé avec une démonstration
pratique de son fonctionnement Ensuite, nous devons définir la taille du noyau pour les opérations
morphologiques Tapez donc un noyau de
nom de variable. noyau égal à Np point sur
elle crée une taille de noyau en utilisant le tableau Numpi
à l'
intérieur des séries pour transmettre une taille de noyau
de cinq pixels Ensuite, nous devons
passer le type D et point
HeuTypeNP à l'interface utilisateur NT huit Il s'agit du type de document. Ce noyau est utilisé dans des opérations
morphologiques telles que la dilatation et
le traitement de la résine
brillante agrandie dans une abord, nous créons une matrice de
cinq par cinq remplie de uns, puis nous définissons le type de document. NP root UI Pas huit, assurez-vous qu'il contenait des entiers
non signés de huit bits Je veux dire une valeur
comprise entre 0,255. Fondamentalement,
la détection des points de
couleur dans l'image est améliorée , ce qui garantit que les petits espaces dans une ligne de dessin ou une
couleur détectée sont comblés. C'est tout pour ce tutoriel. Dans le prochain tutoriel, nous allons dessiner une toile de fenêtre
peinte. Nous allons
créer une toile vierge sur laquelle nous allons dessiner. Ensuite, nous allons
créer des boutons de couleur. Vous allez également
créer un bouton supplémentaire pour TRD reste activé pour la partie suivante
5. Préparer la toile: Bonjour, les gars, c'est bon
de vous revoir. Il s'agit de la troisième partie
de ce didacticiel, et dans cette partie,
nous allons
peindre le canevas de la fenêtre. Ici, nous allons créer
le canevas et les boutons. Donc, dans un premier temps, je vais
définir les couleurs. Je vais donc créer
une couleur variable. Et c'est un tableau et à l'intérieur ce tableau, nous allons
créer un tuple Donc, à l'intérieur de ce tableau, à l'intérieur des cuivres ronds, je vais taper le
premier code couleur Je vais définir la couleur bleue. Donc pour le bleu, je vais taper 255 virgule zéro, virgule zéro Ensuite, une fois dans le laiton, nous devons régler la couleur verte. Donc, tapez 02550. Ensuite, je vais
parler de la couleur rouge. Puis, à l'intérieur des courses, zéro, zéro, 255. Puis une virgule supérieure. À l'intérieur des runras, je vais
définir une autre couleur
qui est le jaune,
et pour le jaune, je
tape 025-05-2505 Ici, je vais utiliser la couleur
Ford comme marqueur. Bleu, vert, rouge et jaune. Ensuite, je vais
créer un index de couleurs. Tapez donc l'indice de couleur. Pour l'instant, je vais
attribuer zéro. Après la configuration de la couleur et de l'index, nous devons configurer le canevas. Pour cela, nous devons utiliser NumPi. Donc, d'abord, je vais
déclarer une variable et notre variable est paint window. Paint la fenêtre égale
pour dessiner le canevas, je vais utiliser la méthode Np
point zéro. Au cours de la course,
nous devons d'abord définir la dimension, la dimension de ce canevas, et je vais le
faire 471 par 636, et je vais utiliser total de trois canaux de couleur, trois barres
additionnées Après cela, je veux une toile de couleur
blanche. Je vais donc ajouter plus 255. Cela va générer
une toile de couleur blanche. C'est à 2:55 par rapport à la valeur totale des pixels, donc ça va le rendre blanc Par défaut, No Jos
crée une image en noir. Nous devons maintenant créer les composants
de l'interface utilisateur. Nous devons créer les boutons, tels que le bouton transparent, les
autres boutons colorés. Nous devons également mettre
du texte sur ce bouton. Pour cela, nous allons utiliser des rectangles pour dessiner le bouton. Et je vais dessiner ce
rectangle sur la fenêtre humide,
donc je tape une fenêtre de peinture égale
à la méthode CV du rectangle à deux points, rectangle Et à l'intérieur du pinceau
rond,
nous devons d'abord définir dans quelle image je veux
dessiner le rectangle Dans notre cas, peignez la fenêtre. Ensuite, nous devons définir
le premier point. Tout d'abord, nous devons définir
le coin supérieur rodé. Ici, je vais passer
à l'intérieur des
cuivres ronds pour la virgule Ensuite, nous devons définir le coin
inférieur droit
de ce rectangle. Au cours des rondes, je
vais passer les 140 65. Ensuite, nous devons
définir la couleur. Pour l'instant, je vais utiliser la couleur
noire pour
le bouton d'effacement. Je vais donc le rendre noir. Donc, pendant les rondes,
je vais passer le million. Ensuite, nous devons
fournir l'épaisseur, et pour l'épaisseur,
je vais en utiliser deux. la même manière, je vais
créer d'autres boutons
pour les autres couleurs. C'est pour Tear Button. Je duplique cette
ligne et cette fois, je vais changer les points. Après avoir dupliqué
cette ligne,
je vais d'abord changer le point de valeur du coin supérieur
gauche. Maintenant, ça commence à 160
et ça se termine par un. Il s'agit de la valeur excédentaire
et de la valeur YS. Nous devons également fournir la valeur du coin
inférieur droit. Maintenant, cela commence à 255. Et ici, je vais
utiliser notre première couleur à partir de la variable colors. Couleur bleue Pour sélectionner la couleur bleue, nous devons taper
ici la couleur, les couleurs, et là je
veux appeler le premier index. À l'intérieur des pièces carrées,
je vais passer zéro. Comme vous le savez, au premier index, nous attribuons la couleur bleue, et je veux remplir ce
rectangle avec cette couleur. Donc, comme épaisseur, je vais passer moins Y. Je
vais remplir le
rectangle avec la couleur Ensuite, je fais cette ligne
et cette fois, je veux sélectionner
la deuxième couleur. Side Pass Index 1. Vous devez également modifier la
position de ce rectangle. Donc, je suis à 275 par un
pour la valeur en bas à droite, je vais passer 370. C'est pour le bouton de
couleur verte, puis nous devons créer un bouton
de couleur rouge. Je duplique à nouveau cette ligne. Et d'abord, je vais
changer l'indice numéro deux, et nous devons également changer
la position du
silence de départ de ce
rectangle pour passer 390. Et la valeur du
coin inférieur est 485. Ensuite, nous devons créer un
bouton de couleur jaune. Je le duplique donc à nouveau et je vais changer le numéro d'
index, en faire trois. Nous devons également
définir la position. Je veux commencer par 505 pixels, et notre valeur en bas
à droite est 600. Et je vais satisfaire.
Maintenant, je vais mettre du texte sur ce bouton Effacer
car pour le bouton Effacer, ai utilisé la couleur noire. Je veux donc y mettre un texte. Pour cela, tapez une fenêtre à cheveux, CV deux, fléchette,
méthode put text, put text Ensuite, à l'intérieur du RounderSSF, je
veux définir dans quelle fenêtre
je veux mettre le texte, qui est une fenêtre de peinture. Celui-ci. Ensuite, nous devons transmettre le texte. Quel texte souhaitez-vous faire
passer ? Je veux taper ici. Ensuite, nous devons définir le point
d'origine de ce texte. Et à l'intérieur de la course, je vais passer 49 à 33. C'est le
point d'origine de ce texte, et ensuite, nous devons
définir la police de caractères. Quelle police de caractères je souhaite utiliser ? Pour la phase de police, je
vais utiliser CV à deux points, police ho underscore,
police hi SymTist one. Ensuite, nous devons
définir l'échelle de police, et je vais utiliser 0,5. Après avoir défini la taille de police, nous devons définir
la couleur de police, et pour la couleur de police, je
vais utiliser cette couleur. Le son passe 00, virgule zéro. Ensuite, nous devons
fournir l'épaisseur, et je vais en utiliser deux. Enfin, nous devons
fournir le type de ligne. Pour le type de ligne, je vais taper
CV à deux points. La ligne
souligne celle-ci Ensuite, je vais créer une
fenêtre pour afficher le canevas. Pour cela, je vais taper cv nom à deux points Window
Method, nom Window. Ensuite, à l'intérieur
des rondresses,
nous devons d'abord fournir
le nom de la fenêtre et dans notre cas, je
vais taper Pate Nous devons également définir
les drapeaux pour contrôler les
propriétés de cette fenêtre. Ici, je dois passer CV à
point, Window AutoSizet un. Ce dimensionnement automatique de la fenêtre
garantit que la fenêtre ajuste
automatiquement sa taille en fonction du contenu affiché Il peut s'agir d'une vidéo ou d'une image.
C'est tout pour cette partie. Dans la partie suivante,
nous allons
démarrer le traitement des images en utilisant follow et nous allons
extraire le cadre de notre webcam. Merci d'avoir regardé cette vidéo restez connectés pour le prochain studio.
6. Configuration de la caméra et boucle principale: C'est bon de te revoir. C'est l'autre partie
de ce projet, et nous allons
commencer par la capture
de l'image vidéo. Donc, d'abord, je vais
commenter cette ligne. Nous n'avons pas besoin de cette fenêtre peinte. Je vais donc le commenter de temps
en temps
, puis je
vais créer une variable et notre
variable est un plafond égal à une vidéocature à deux points CV Celui-ci, puis à
l'intérieur des presses rondes, je vais passer la source, et nous voulons démarrer
la caméra par défaut, donc je vais passer zéro. Ici, nous initialisons la webcam pour capturer la vidéo en direct Ensuite, nous devons exécuter une
boucle infinie pour le traitement vidéo. Pour cela, je vais utiliser ici
la boucle While. Bien que cela soit vrai. Ensuite, dans cette boucle while, je vais utiliser une méthode. Je vais utiliser la méthode de lecture. Ici, pour taper cap point read. Cette méthode va lire toute la trame de
cette variable de cap. Et comme vous le savez, cette méthode va
renvoyer un total de deux résultats. abord, il va
renvoyer une valeur Bullen, puis il va renvoyer
le cadre d'image réel, et nous devons stocker
les deux valeurs dans une variable Pour la valeur Bullen
ici, je vais
utiliser une variable appelée success et pour
et pour l'image, je vais utiliser une variable frame égale à la méthode cab point read Maintenant, après avoir lu le cadre, je vais le retourner. Je veux retourner le
cadre horizontalement parce que je veux faire de cette
fenêtre un vio foror cela, donc ici je vais lier le cadre
égal à la méthode de retournement à deux points du CV Ensuite, à l'intérieur des rondresses, nous devons d'
abord
transmettre le fichier source abord, nous devons transmettre
la source de l'image source et le
nom de notre source d'image est frame, et nous devons également
transmettre le flip-code, et en tant que flip-code,
je vais en transmettre un. Cette valeur va retourner
le cadre à l'horizontale. Ensuite, je vais
convertir ce cadre en espace colorimétrique HSB Pour cela, je vais déclarer
une autre variable hSv égale à CV deux, couleur CVT. Dans le Rundress en tant que source, je vais passer le cadre. Ensuite, je vais
convertir cette
image de Bzier en couleur GSV Je vais taper CV à deux
points, soulignement, et je veux le convertir en
BGR deux Ici, nous convertissons ce cadre en espace
colorimétrique HSV pour faciliter la segmentation des
couleurs Et comme vous le savez, HS est l'
abréviation de saturation et de valeur des teintes. Ensuite, nous devons saisir
la valeur du seuil HSV. Nous devons récupérer les valeurs des seuils supérieur
et inférieur à partir des barres de suivi. Pour cela, nous devons
utiliser une méthode, et le nom de notre méthode est
gate track bar pause. Donc, au début, je
veux récupérer le plus haut, donc je vais taper U,
U représente le trait de soulignement supérieur U.
Upper U est égal à C deux,
point, get track but pause Cette fonction. Ensuite, à l'intérieur de
la passe ronde entre guillemets, nous devons d'abord passer, nous devons passer le
nom du track bud à partir de quelle barre de piste, je veux recevoir la valeur Et le nom de notre titre
est « upper hue ». Je vais donc copier
ce nom rab en haut de Hu, et je vais le coller
entre guillemets doubles Ensuite, nous devons passer le windoame
comme vous pouvez le voir, ici nous déclarons le nom de la fenêtre et notre windoame est composé de détecteurs de
couleurs Je copie le nom de la fenêtre, et je vais le mettre
dans les codes doubles. la même manière, nous devons
saisir la valeur de saturation supérieure. Pour cela, je vais
dupliquer cette ligne, et dans un premier temps, je vais
changer le nom de la variable. C'est pour la saturation supérieure. Vous devez également
modifier le nom du train. Je vais copier la
valeur saturation supérieure, et je vais la coller ici. Ensuite, je double cette ligne
et nous devons également utiliser le même nom de fenêtre
qui est le détecteur de couleur Ensuite, nous devons
créer une variable pour supérieure de la valeur supérieure et pour
la valeur supérieure,
je vais copier
ce TRabNameUper je vais copier
ce TRabNameUper V. Ici, nous récupérons le u supérieur, la saturation supérieure et la
valeur
supérieure de la même manière,
nous devons récupérer le U inférieur, la saturation inférieure et la valeur inférieure la valeur
supérieure de la valeur supérieure et pour
la valeur supérieure,
je vais copier
ce TRabNameUper
V. Ici, nous récupérons le u supérieur, la saturation supérieure et la
valeur
supérieure de la même manière,
nous devons récupérer le U inférieur, la saturation inférieure et la valeur inférieure. Je vais dupliquer
cette section et remplacer les noms
des variables. C'est pour le HU inférieur
et pour le U inférieur, je vais utiliser ce nom d'interdiction de
traîner, en U inférieur. Et pour une saturation plus faible,
je vais d'abord changer
le membre variable, saturation
inférieure et les cheveux
serrés juste plus bas Diminuez la saturation,
et pour une valeur inférieure, une valeur égale à et juste
à nouer, abaissez les cheveux. Valeur inférieure. Nous récupérons ici la
position actuelle des barres de suivi. Je veux parler de ces sliders. Et comme vous le savez, les
barres de suivi permettent
de régler dynamiquement le seuil HSV pour la
détection des couleurs en temps réel Nous l'avons déjà fait dans
nos projets précédents. Passons maintenant à
la définition de la plage HSV supérieure et inférieure,
la gamme de couleurs HSV Pour cela, je vais
créer une variable appelée Upper Underscore HSV HSV supérieur égal à Np point A. À l'intérieur de la résine ronde, je vais utiliser des vases carrés Et ici, je vais passer, et ici je vais transmettre
toutes les variables supérieures. La teinte supérieure
passe d'abord sous le hu supérieur, puis je vais passer à la saturation
supérieure Ensuite, je vais
passer la valeur supérieure. De la même manière, nous devons
déclarer un autre tableau. Nous devons créer un autre
tableau pour une valeur HSV inférieure. Donc ici, je vais
dupliquer cette ligne et hernotyper le HSV inférieur Je vais passer, plus bas. Je vais donc
remplacer U par L, pour une saturation
plus faible
et une valeur plus faible. Maintenant, après avoir créé les GeSR
supérieur et inférieur, nous devons créer les boutons
rectangulaires de notre image en direct Pour cela, je vais
utiliser la même méthode,
la méthode du rectangle pour créer le rectangle à
la même position. Je copie donc tous les rectangles
de la peinture. Et je vais le placer
sous les arêtes inférieures V, et nous devons le déplacer à l'intérieur
du niveau d'indentation, c'est important
car nous travaillons sur Python. C'est sympa. Maintenant, cette fois, nous devons créer ce rectangle dans le cadre
lumineux, ce cadre. Ici, nous créons le bouton
rectangulaire sur la fenêtre blanche,
cette fenêtre de peinture. Mais cette fois, nous devons le créer à l'intérieur du cadre lumineux. Pour cela, nous devons remplacer cette variable de fenêtre de peinture
par la variable de cadre. Copiez la variable m frame, et je vais remplacer la fenêtre de
peinture par la variable
frame. Donc, un par un, je vais
remplacer le nom du cadre. Tous les noms de variables.
Châssis. Ne vous inquiétez pas, je fais avancer ce processus rapidement. Au fur et à mesure que je vais toucher
ce rectangle étrange de couleur
noire, je vais
passer à moins un. Je
vais configurer ce fichier. Après avoir configuré ce fichier, je vais mettre le texte sur
ce bouton auriculaire. Pour cela, je vais copier
la même ligne, mettre du texte. Je copie cette ligne et je vais la coller
après le rectangle. Ici, vous n'avez rien
à changer. Ici, je vais juste
changer le nom du cadre. Et nous devons placer le texte
dans cette variable de cadre,
pas dans la fenêtre de peinture. Je vais copier Donc,
remplacez la fenêtre de peinture par cadre variable à cadre, et
je vais définir celle-ci. Maintenant, je vais exécuter le
code dans mon terminal, mais avant d'exécuter le
code dans mon terminal, je vais
définir
ici une condition E. Sinon, cela ne
brisera pas la boucle et ne
traversera aucun toit. Je vais donc d'abord définir une
condition pour quitter la boucle. Ici, je vais taper la clé à deux points I CV à
l'intérieur des cuivres ronds, je vais régler
une milliseconde et je vais régler
une milliseconde et
le signe « And Boston ». Zéro x FF, égal à deux, je vais exécuter
la méthode ORD ORD. À l'intérieur, le rond dit que si je fais l'éloge du petit Q, c'est que je veux briser la boucle C'est la condition p, je veux rompre la boucle. Pause. Nous devons également
publier la capture. En dehors de la boucle while,
ici, je vais taper Capt release method,
cp point release Cette méthode va
publier notre service Web. De plus, je vais
détruire toutes les fenêtres. CV à deux points, détruisez
toutes les fenêtres, celle-ci. Et puis je veux
afficher les deux cadres. Au début, je veux
afficher la fenêtre blanche,
qui est une fenêtre de peinture, un cadre de fenêtre de
peinture. Ici, je vais
exécuter une méthode appelée CV two dot I'm from method. Et à l'intérieur des
arêtes, je vais
passer le nom de la fenêtre et le nom de notre
fenêtre est fenêtre blanche Et nous devons également
transmettre la source du cadre. Et comme vous pouvez le voir, nous
allons utiliser ce cadre, cette fenêtre de
peinture, ce cadre vide. Je copie donc le nom de la variable, et je vais le coller ici. Ensuite, je vais
afficher un autre cadre. Je duplique donc cette
ligne, et cette fois, je veux afficher cet
ordinateur central, le cadre lumineux. Alors, tapez cam. C'est une caméra lumineuse. Je vais également placer la variable,
qui est le cadre. Je vais dire ces
cinq points. En gros, je vais exécuter ce code
pour vérifier Perverse Est-ce qu'il place les rectangles ? Où souhaitez-vous vous placer ?
Vérifie le code. Après avoir exécuté ce
code, comme vous pouvez le voir, il affichera d'
abord la piste, la barre de couleur, où vous pouvez voir ce curseur
. Après un certain temps, je peux attendre un certain temps,
il ouvrira notre caméra Il faut donc attendre un certain temps
pour démarrer l'appareil photo. Comme vous pouvez le voir, vous
pouvez voir ici une fenêtre blanche, et nous devons masquer cinq boutons, quatre boutons couleurs
et un bouton à un niveau. la même manière, dans notre
fenêtre en direct, vous pouvez le voir ici, nous devons masquer cinq boutons, quatre boutons couleurs
et un bouton à un niveau. Mais le problème est que le
texte de l'oreille n'est pas visible sur la fenêtre lumineuse car
nous utilisons ici la même
couleur de fond, le noir. C'est pourquoi le texte correspond
à la couleur de fond. Et pour le rendre visible, il
faut le rendre blanc. Je vais donc fermer
toutes les fenêtres, et ici je vais
taper 255 pour le bleu, pour le vert, je vais également
passer 255 et pour le rouge, je vais
également passer 255. Maintenant, si j'exécute ce code, il renverra le texte
blanc dans la fenêtre de bibliothèque. Comme vous le savez, par défaut
dans nos sliders, héros est de couleur bleue Je vais détecter
la couleur bleue. Vous pouvez également changer si
vous changez le curseur par rapport C'est tout pour ce didacticiel Dans la prochaine partie
de ce tutoriel, nous allons travailler sur le masquage Nous allons également
détecter les contours. Merci d'avoir regardé
cette vidéo,
restez connectés pour la prochaine partie.
7. Identifier le pointeur en utilisant un masque: C'est bon de vous voir,
les gars. Encore une fois, je suis de retour avec une autre vidéo en
lien avec ce projet. Et dans cette partie,
nous allons
identifier le pointeur
en créant un masque. Donc, dans un premier temps, je vais
commenter les deux lignes. Je n'ai pas besoin de ces
lignes pour le moment. Ensuite, je vais
créer un masque. Après avoir créé le masque, nous devons l'affiner encore et encore en utilisant
différentes méthodes. Dans un premier temps, je vais
créer un masque, un masque MSK à
bit variable égal à Je vais utiliser la
méthode in range, CV two.in range. Ensuite, à l'
intérieur de la rotonde,
nous devons d'abord fournir
la pile source En tant que source, je vais
passer le HSV, le HSV au HSV Ici, je passe ce
cadre HSV, celui-ci. Après cela, nous devons
réduire le HSV. Pour un HSV inférieur, comme vous pouvez le voir, nous créons
ici une
variable, WerHSB C'est un tableau. Je
veux transmettre ce tableau, puis nous devons transmettre
le HSV supérieur En gros, la fonction
ing permet d'isoler la crête de couleur souhaitée
et d'utiliser cette fonction pour créer un masque binaire. Cette masse est un masque binaire dans
lequel les pixels blancs représentent les zones de l'image d'origine qui correspondent à la gamme de couleurs
souhaitée. Supposons que nous sélectionnions la couleur bleue et que ce masque détecte la couleur bleue et blanchisse
cette partie Après avoir créé la masse à l'
aide de la fonction annelée, nous devons supprimer bruit, nous devons
supprimer le bruit en rétrécissant
les zones blanches Pour supprimer le bruit en
réduisant les zones blanches, nous devons utiliser une
méthode appelée erot Ici, je vais taper le masque
égal au masque anglais, je vais appliquer la méthode CV à
deux points Rod. OT. Ensuite, à l'intérieur des rondelles, nous devons d'abord
fournir cette source Et comme source, je
vais fournir le masque variable mask. Ensuite, nous devons transmettre la taille du noyau et pour le noyau, je vais transmettre cette
variable, kernel. Ici, nous créons un noyau cinq
par cinq. Je copie ce noyau de nom de variable et je vais le transmettre ici. Ensuite, nous devons
définir l'itération. Pour l'itération, je
veux une itération. Dans un premier temps, nous
passons ici le masque binaire, qui est opté depuis
la date précédente, puis nous passons le noyau Il s'agit d'un élément de structure, qui est utilisé pour l'érosion, puis nous passons l'itération. Et en voici une. Il est défini le nombre de fois que l'opération d'érosion
est appliquée. En gros, cette méthode
va réduire la taille du sinus blanc en supprimant les pixels
limites. Après cela, nous devons
supprimer tous les petits bruits. Pour cela, nous allons utiliser une méthode appelée morphologie EX Donc, encore une fois, je vais
attacher un masque égal à v morphologie à
deux points Ex puis à l'intérieur
de la pause ronde,
je vais d'abord fournir
le masque binaire, puis nous devons
fournir l'opération,
une opération morphologique Pour cela, je vais
taper CV to dot morph op. Celui-ci. Ensuite, nous devons définir la taille du noyau
et pour la taille du noyau, je vais utiliser la
même variable kernel. En gros, elle filtre pas le masque et cette méthode va supprimer tous
les petits bruits. Ensuite, nous devons étendre et affiner la zone blanche
pour restaurer la forme. Pour cela, nous devons
utiliser une autre méthode. Je voudrais parler d'un autre
filtre, qui est dilaté. Encore une fois, je veux attacher le masque de la
même manière que la méthode de dilatation de la civette. Ensuite, à l'intérieur des
robes rondes,
nous devons d'abord passer le masque binaire Je vais
donc
taper mask, virgule, puis fournir
la taille du noyau, qui est le noyau, puis nous devons
fournir l'itération Pour l'itération, je
vais en adopter une. Cette séquence est couramment utilisée dans des tâches telles que la détection
d'objets. En outre, il s'agit d'une segmentation
basée sur les couleurs. Ou nous pouvons l'utiliser pour la détection des
contours. Après avoir appliqué toutes les méthodes, il va affiner
notre objet marqueur. Ensuite, nous devons trouver
les contours du pointeur après
l'avoir
identifié. Mais nous n'allons pas faire
ce tap dans cette vidéo. Nous allons le
faire dans le prochain studio. Je vais maintenant afficher cette fenêtre de masque
en utilisant la méthode IM Shu. Pour cela, Hotype Cv point M show. Dans la méthode IM Show, vais d'
abord fournir un nom de
fenêtre pour le nom de la fenêtre, je vais utiliser un masque. De plus, en tant que variable, je vais transmettre
la variable de masque. Ensuite, je vais configurer ce fichier. Après avoir défini ce fichier,
je vais exécuter ce code dans mon terminal, et je vais attendre un certain temps
pour voir s'il fonctionne correctement ou non. Comme vous pouvez le voir, cela ouvre une fenêtre de masque noir et vous ne pouvez rien voir
dans cette fenêtre. Mais dans ma main, j'ai un pointeur
bleu, bleu. Si je déplace ce pointeur
devant mon appareil photo, vous pouvez
maintenant le voir identifié. Il a identifié ce pointeur bleu. Maintenant, vous ne pouvez voir
que le pointeur bleu. Lorsque je déplace ma
main, elle déplace également le pointeur. Cela fonctionne. J'ai réussi à
identifier le pointeur. Après avoir identifié le pointeur, nous devons identifier le contour, mais je ne vais pas le faire dans
ce didacticiel Je vais le faire lors
du prochain tutoriel. Merci d'avoir regardé cette vidéo. Restez à l'affût.
8. Trouver le contour du pointeur: Bonjour, les gars. C'est bon
de te revoir. Encore une fois, je suis de retour avec un autre tutoriel
en lien avec ce projet. Et dans ce tutoriel, nous allons trouver le
contu du pointeur Dans un premier temps, je vais
supprimer ces deux lignes.
Je n'en ai pas besoin. Ensuite, pendant que
vous êtes là , je vais
détecter les contours. Nous devons trouver le contour
dans ce masque binaire. Fondamentalement, les contours
sont des carbes joignant tous les points continus
le long de la limite de l'objet, avec la même intensité Maintenant, pour trouver les contours, nous devons utiliser la méthode des
contours fins. Dans un premier temps, je vais
déclarer un total de deux variables. Pour le contour, je
vais taper Cn Tf. Avec cela, je vais
déclarer une autre variable appelée Z égale à deux, et je vais utiliser notre
méthode fine contuse Je vais taper le CV 2
qui précise les contours
à l'intérieur des rondes. Tout d'abord, je vais
taper masque, copier. Je vais utiliser la
version copiée de ce masque. Ensuite, en tant que deuxième paramètre, nous devons passer le mode. Je vais taper CV à point. RDT sous-scope
externe, celui-ci,
virgule, et
interpasse également Pour ce qui est de la méthode, je vais associer l'approche
CV à deux chaînes de points,
simple, celle-ci. Cette méthode va
renvoyer la liste des contours qui se
trouvent sur cette image, l'image
du masque, la
deuxième variable
est destinée à la deuxième sortie,
qui est Il est ignoré car il n'
est pas utilisé ici. Dans notre premier paramètre, nous passons la version café
de cette image de masque binaire. Deuxièmement, nous passons le mode. Ce mode ne récupère que
le contour extérieur et en ignore un à la
place de certains. Enfin, nous adoptons méthode d'approximation des
contours
qui comprime les segments horizontaux, verticaux et
diagonaux pour ne conserver que leurs extrémités. Cela va réduire l'utilisation de
la mémoire. Comme je vous l'ai dit, cette
méthode va
inscrire en liste une
liste de condurs Ensuite, nous devons traiter
le plus grand contour. Mais avant de
commenter cette ligne,
sinon, nous pouvons supprimer cette
ligne. Nous n'en avons pas besoin. Mais avant de traiter,
je vais d'abord déclarer une variable, et notre variable est centrale. Au centre, pour le moment, je vais en faire une nonne Cela sera initialisé avec nun. Il mémorisera les
coordonnées du centre
du plus grand contour
s'il en trouve un Ensuite, nous devons posséder le plus grand contour
en utilisant les conditions IP. Ici, je vais taper et
je vais utiliser la fonction LN. À l'intérieur de la fonction len, je vais passer
les contues CNT Si les contours sont supérieurs à zéro, alors dans cette condition IP, nous devons
maintenant raccourcir les contours pour trouver
les plus grands contours Pour raccourcir les contours, je vais taper CNT, égal à, je vais utiliser une
méthode appelée short eight Le huit à l'intérieur des rondes est d'abord intercalé avec l'itérable et nous allons itérer
cette variable, Ensuite, nous devons passer la clé. La clé est égale à la zone de contour à
deux points du CV I'm Pass. Zone de contour, celle-ci. L'
inverse du coma et de l'amyoti est égal à vrai. Et pour sélectionner le plus grand
contour de cette liste, nous devons passer
le numéro d'index.
À l'intérieur de la presse carrée, je vais passer zéro. Maintenant, laissez-moi vous expliquer
cette méthode de tri. Ici, nous trions les conduits en
fonction de leur superficie
par ordre décroissant C'est pourquoi nous lui
tapons reverse true. Ensuite, nous devons trouver
le plus petit cercle qui puisse complètement masquer
le conduit sélectionné. Pour cela, je vais taper à
l'intérieur des robes rondes. Encore une fois, je vais
utiliser des robes rondes, puis des virgules X, des
coordonnées Y , et en dehors
du domaine de la gestion, je vais passer Coma,
je vais passer un rayon Pour obtenir le rayon du cercle environnant
autour du contour,
nous devons utiliser une méthode et
notre méthode est le
mini-cercle enveloppant nous devons utiliser une méthode et
notre méthode est le
mini-cercle Ici, je vais taper CV Mini cercle
enveloppant à deux points , celui-ci Ensuite, à l'intérieur de l'ombre, il est dit que nous devons fournir
le contour, le contour exact, que
vous trouverez dans cette liste, je vais taper CNT Et cette méthode renvoie
les coordonnées XS. Il renvoie également le rayon. Ensuite, en utilisant ce
Xs Xs et le rayon, nous allons dessiner un subtil. Nous allons dessiner le
cercle autour du contour. Pour cela, je vais
utiliser la méthode du cercle. Je vais associer un
CV à un cercle. Ensuite, à l'intérieur des ronders,
nous devons d'abord fournir l'
image dans laquelle je veux dessiner le cercle Ici, je vais
laisser passer exactement le libre Ce cadre STFramfring. Ensuite, nous devons passer
le point central. Donc, à l'intérieur, la
robe ronde se trouve chez XY. Mais le problème est que nous devons convertir ces
coordonnées en nombres entiers. Cette fonction renvoie les
coordonnées sous forme de chaîne. Nous devons
le convertir en entier. Je vais l'utiliser en fonction. Si je ne participe pas au processus du tour, je vais passer les X X. De la même manière, INT. À l'intérieur du ras rond, je
vais dépasser les YxS. Ensuite, nous devons
passer le rayon. Pour le rayon A, je vais utiliser la fonction
in dans la méthode INT. Ensuite, à l'intérieur du
laiton rond, je passe le rayon. Après avoir fourni le rayon, entrez également pour fournir de la couleur. Pour la couleur, je vais
utiliser zéro virgule 255255. Il est de couleur jaune. Ensuite, vous devez indiquer l'
épaisseur de ce rayon, et en tant qu'épaisseur,
je vais en indiquer deux. Maintenant que j'ai dessiné ce
cercle à l'intérieur du contour, nous devons détecter le centre. Nous devons détecter le point
central pour calculer le centre des contours
détectés. Tout d'abord, je vais taper une
variable appelée A, AM égale à, et
je vais utiliser
une méthode CV à deux moments de points. À l'intérieur de la sœur ronde, je
vais passer devant le contu CNP. À l'aide de cette méthode, nous
calculons les moments spéciaux
du contour, qui sont des quantités
scalaires utilisées pour dériver les propriétés du contour Maintenant, en utilisant ce moment spécial, nous devons calculer le
centre de ce cercle. Et pour cela, nous
devons utiliser une formule. Mais avant de
calculer le centre, nous devons
d'abord comprendre
la méthode du moment. Comme vous pouvez le voir, ici je
tape « single » et « comète ». À ce moment, méthode de
retour à la commande. Il s'agit d'un mouvement de premier ordre. Ici, il indique le point et 01 point et celui-ci
est égal à zéro pour ordonner le mouvement, zone du conduit ici,
il renvoie zéro point Donc, si je divise n 010
et n01 par n00, cela renverra les coordonnées
Xs
et les coordonnées Y xs
du centre de ce cercle Pour cela, nous
devons utiliser une méthode. Pour cela, je vais
créer une variable pour calculer le
point central, du type center. centre est égal à
l'intérieur des robes rondes Dans un premier temps, je vais
extraire la coordonnée X. Quelqu'un utilise la méthode informatique. Il s'infiltre dans
les robes rondes. Au début, je vais
diviser A à l'intérieur des carrés, l'intérieur des codes simples, A dix, et je veux le diviser,
donc j'utilise la division sinus avec
A à l'intérieur de la résine carrée, je veux le faire cette fois, je veux passer à l'intérieur des codes
simples, le double zéro Virgule. Nous devons maintenant extraire
la coordonnée Y. Cela va
renvoyer la coordonnée et nous avons également besoin de la coordonnée Y. la même manière,
je vais taper INT dans la résine ronde Ici, je vais passer à
l'intérieur de ces résines carrées. Dans un premier
temps, je vais
passer un 01 Je veux diviser cela dans le carré à l'intérieur des codes doubles, un double zéro. Cela va renvoyer
les coordonnées Y. Et vous allez le stocker
dans la variable centrale,
le centre égal à
ce calcul, et convertir les
coordonnées calculées en indexeurs, car c'est cette
valeur sous forme de position en pixel En gros, ce code crée le plus grand contour
d'une image binaire Dans notre cas, masquez l'image
du masque et tracez
un cercle autour de celle-ci De plus, nous calculons le centre
en utilisant des moments spéciaux. Il est couramment utilisé dans les applications
de suivi d'objets. C'est tout pour ce tutoriel. Dans la prochaine partie
de ce didacticiel, nous allons
traiter le bouton. Nous allons gérer les clics sur
les boutons. Merci d'avoir regardé cette vidéo, Tatune pour la suite
de ce tutoriel
9. Manipuler les boutons: C'est bon de vous revoir, les gars. Encore une fois, je suis de retour avec une autre vidéo liée
à ce projet, et dans cette section, nous allons traiter
des coups de bouton Comme vous le savez, nous créons
différents boutons, tels que le bouton transparent, le bouton couleur
rouge, le bouton de couleur
jaune, le bouton de couleur
verte
et le bouton de couleur bleu. Maintenant, nous devons gérer
les coups de bouton. Donc, lorsque je passe mon
MarkR au-dessus du bouton, je souhaite activer
le bouton Supposons que si je passe mon curseur
au-dessus du bouton Effacer, je souhaite effacer
tous les dessins la même manière, si je passe
mon marqueur au-dessus du bouton jaune, j'
active
le marqueur jaune Ensuite, il va dessiner les
formes en jaune. Commençons par
la condition IP. Ici, je vais taper
I centré à l'intérieur de la résine carrée, je vais passer l'
index numéro un, inférieur
à 65, puis dans cette condition IP, je vais utiliser
une autre condition IP Mais avant d'
expliquer cette ligne, quelle est la signification
de cette condition ? Cela permettra de vérifier
si le centre de
l'objet dédié se trouve dans la partie supérieure
de l'écran, exemple si les coordonnées Y
sont inférieures ou égales 65, alors cette zone est
réservée au bouton cliquable Ensuite, dans la
condition IP,
nous allons d'abord utiliser
le bouton d'effacement. Somme 40, inférieur à égal au centre du numéro d'
index zéro inférieur à 140 Ensuite, dans cette condition IP, cette condition
qui consiste à vérifier les coordonnées X
du centre se situe
dans la plage
de 40 à 140 correspondant à la position des boutons
auriculaires Si c'est vrai, l'
action de l'engrenage est déclenchée. Ensuite, vous devez effacer tous les
points pour la couleur bleue, couleur
verte, la couleur rouge et la couleur jaune en
réinitialisant la
liste d'objets correspondante Comme vous le savez, chaque de représente
un point pour le drive. Donc, un par un, je vais
effacer les points, tous
les points de couleur. Comme vous le savez, nous
déclarons ici nos points de deck. Nous créons des objets de deck, des points
B, des points G, points
R et des Eulopoins Ces points correspondent
à la couleur bleue, couleur
verte, à la
couleur rouge et à la couleur jaune. Donc, pour copier toute la section. Je vais utiliser le même ate, et je vais le coller
dans cet article sur cette affection de la hanche. Ici. Je vais le placer à
l'intérieur de l'étiquette d'indentation Pour ce d, je vais
définir l'utilisation de la mémoire, et pour l'instant, je vais
définir l'utilisation de la mémoire, 512. Je vais remplacer toutes
les valeurs par 512. Ces points de date stockent
les points de dessin pour les martyrs bleus, verts, rouges et jaunes. Vous définissez ici la
limite de taille maximale, et chaque deck a
une taille maximale de
512 afin de limiter l'utilisation de la mémoire De plus, nous devons remettre à zéro tous les indices de couleur
pour chaque couleur Donc, ici, je vais
copier cette section, cet index de couleur, cet indice de couleur
bleu, cet indice de couleur
verte, cet indice de couleur
rouge et cet indice de couleur
jaune Et je vais le coller ici. Nous devons également le déplacer à l'
intérieur du niveau d'indentation. Maintenant, pour effacer la
zone de dessin de la fenêtre de peinture, nous devons supprimer toutes les couleurs
de trait de cette fenêtre de peinture. Nous devons faire en sorte que tous
les pixels soient blancs. Pour cela, je vais
taper ici Je vais
taper paint window. À l'intérieur du ssh carré, nous devons effacer la
zone de dessin de la fenêtre de peinture en
mettant en blanc tous les pixels
situés sous la ligne de 67 Dans un premier temps, nous devons nous référer à toutes les lignes à
partir de la ligne numéro 67. Ici, je vais taper
67, puis semi-froid. Cela s'est passé de la
ligne 67 à la fin. Je veux dire que de la ligne
67 au bas de l'image, nous devons renvoyer
toutes les colonnes à la
largeur de la plage d'images
pour ce phénotype Ensuite, deux points, puis nous
devons référencer tous les canaux. Encore une fois, je vais
taper com et je
dois également taper deux points pour sélectionner
tous les canaux de couleur. Cela sélectionne donc
toute la zone dessinable de l'image à
partir de 67 à. Ensuite, je vais
attribuer une valeur à la pièce sélectionnée et
je veux en attribuer 255. Nous attribuons ici la valeur sélectionnée à la partie de
cette combinaison et 255 représente l'
intensité maximale pour chaque canal pour
chaque canal de couleur En gros, il va
renvoyer un bon pixel. Il va donc activer le bouton Effacer et
effacer la fenêtre. Ensuite, un par un, je vais utiliser
ces coordonnées et activer ces rectangles
en particulier Tout d'abord, je vais
travailler pour la couleur bleue. Ici, je vais taper Ls
dans la condition 160, inférieure à égale au centre. À l'intérieur des adresses carrées,
je vais passer
un index nul avec un chiffre inférieur à 55. Insérez ensuite cette condition, indice de couleur de l'
hème est égal à, et je souhaite sélectionner
le premier index Et comme vous le savez, dans
notre indice de couleur, nous enregistrons quatre couleurs au total et notre première couleur
est le bleu. Je vais donc utiliser un indice zéro. C'est pour la couleur bleue. Donc, Helm roti, un commentaire
a une étiquette, il est bleu. Ensuite, je duplique cette
section, et cette fois, je vais définir les coordonnées
entre, pour la couleur verte, je tape 275 B et notre zone est 370. Ensuite, je vais
changer la couleur de cette ligne. Je vais en faire un. Encore une fois, je
vais dupliquer cette section et cette fois notre plage de pixels 300-9390 Je vais utiliser
cette fois, je vais utiliser l'indice de couleur deux. C'est notre couleur verte. Je vais donc changer
le commentaire en vert. Et celui-ci est pour la couleur rouge. Encore une fois, je
vais dupliquer cette section et cette fois, je vais changer
les coordonnées. Maintenant, on part de 505 pixels
et on passe à 600 pixels. Cette fois, je vais utiliser
notre troisième indice de couleur trois. Si nous déplaçons notre pointeur à cette position et à ces coordonnées, cette option de couleur sera activée. Si nous déplaçons notre marqueur de
100-60 x 255, il va passer à
la couleur bleue En même temps, il va
activer le vert, le rouge, et le dernier sera
de couleur jaune. Et maintenant, nous devons
gérer le dessin si l'utilisateur n'est pas
dans la zone inférieure. Ainsi, dans la partie située à
l'intérieur de la condition s, ce sp s'exécute lorsque le
centre n'est pas la raison principale. Je tiens à dire la principale
raison de cet écran. Si notre condition ne
correspond pas à cette condition IP, elle va
passer dans la partie s. Si notre état est
supérieur à 65, alors il va
passer dans la partie s. Dans cette partie, nous
allons gérer la tique colorée
correspondante. Nous allons ajouter
le point central à la prise
colorée correspondante Donc, un par un, je vais
gérer tous les indices de couleur, et nous devons ajouter les
points de couleur à l'indice de couleur Et comme vous le savez, ce
sont tous des indices de couleur. Ici, je vais taper indice de couleur égal
à zéro. Comme vous le savez, zéro
représente la couleur bleue. L'indice zéro représente
la couleur bleue. Ensuite, insérez cette condition si, je vais taper des points B. À l'intérieur des robes carrées, elle doit passer un index
bleu, un index bleu, et je veux
ajouter les coordonnées Ici, je vais taper
point, ajouter, ajouter, soulever. Ensuite, pendant les
rondes, je vais
passer les coordonnées du centre. Ici pour passer au centre.
Comme vous le savez, point
B est une liste de decks dans
lesquels sont stockés les points Je veux dire les coordonnées utilisées pour dessiner avec une couleur bleue et chacune de représente un seul
trait de dessin bleu. Et l'indice bleu est un indice qui suit
le trait en cours Si nous dessinons un
trait de couleur bleue, il le suivra. Il est utilisé pour accéder
au deck actuel en point
bleu afin de stocker de nouveaux points
pour le coup en cours. Et la méthode d'ajout du tour
au point situé à l'avant du pont
actuel en points bleus, et ici le centre représente les coordonnées des
points détectés En gros, je tiens à dire que
lorsque l'utilisateur dessine en bleu, le Pumram
détecte en permanence la position de ce pointeur et ajoute au tableau le trait bleu
actuel L'utilisation de la fonction Append Lip garantit que les points sont stockés
dans l'ordre inverse, ce qui peut être utile pour une
lecture et un traitement efficaces De la même manière, nous
devons gérer toutes les couleurs. Donc ici, je vais taper un indice de couleur de feuille égal à cette fois où
je vais en transmettre un. Alors ici, je vais
taper des points G. C'est pour le vert, donc je
vais taper des points G dans presses carrées (troupeau, passe, indice
vert, indice vert, indice vert). la même manière,
je veux
ajouter un tour dans
les presses rondes, je vais passer le centre Ensuite, je duplique
cette section et cette fois je vais
ajouter un index de couleur Je vais dépasser l'indice de
couleur deux, qui représente la couleur rouge. Cette fois, je vais
utiliser nos points. Je vais également
changer le nom de l'index. Sans utiliser d'index vert, je vais utiliser un
index rouge, un index rouge. Encore une fois, je vais
reproduire cette section et nous devons gérer
la couleur jaune Ici, je vais passer l'indice de
couleur trois, et je vais remplacer les
points par des points jaunes. Nous devons également remplacer
l'index, l'index jaune. C'est ainsi que nous pouvons
dessiner des formes différentes couleurs en utilisant
ces conditions. Nous devons maintenant gérer ce scénario où
rien n'est détecté. Je tiens à dire que
nous devons maintenant ajouter
le prochain dk lorsque rien n'est détecté pour éviter
la Terre manquante Ici, je vais
taper l'état. Voir. L'accent est alors sur l'état de santé. Ici, nous devons gérer le fait que l'application
arrête de dessiner
lorsque l'application indique que l'utilisateur
a arrêté de dessiner, il doit
alors
préparer la ligne suivante Créez un nouveau ****. Pour créer un nouveau deck, nous devons également
augmenter l'indice bleu Un par un, je vais créer un nouveau deck
pour chaque couleur. Comme je vais
incrémenter les index. Dans l'état actuel des choses,
je vais d'abord m'occuper
de la couleur bleue. Certains points de type B , puis je vais utiliser
la méthode append point append, et je vais
ajouter un nouveau dig Ensuite, à l'intérieur du
laiton rond, je suis du genre à creuser. Et à l'intérieur des bretelles
rondes,
nous devons également indiquer la longueur
maximale, la longueur
maximale, ici je vais
dire la longueur maximale 512, et nous devons également
incrémenter l'index. Je vais donc taper
index bleu plus égal à, et chaque fois que je vais
incrémenter avec un, j'en ferai un De la même manière, nous devons gérer d'autres couleurs. C'est pour les points G, les couleurs
vertes, et ici je vais remplacer le nom de l'index, index vert. la même manière,
je vais gérer l'indice rouge, les points R. Je vais également remplacer
l'index, l'index R. Ensuite, je vais m'
occuper de l'index jaune. Je fais cette section et je
remplace rpoint par des points
jaunes et lors d'une nouvelle
édition, je vais mettre à jour Je vais augmenter l'indice
jaune, l'indice jaune. En gros, dans cette section, manipulez les boutons de clic Ici, nous dessinons sur Canvas. Tout d'abord, nous manipulons
les boutons de clic, puis nous dessinons sur Canvas Ensuite, nous gérons ce scénario où rien ne dessine, rien n'est détecté. Et pour y remédier, nous
créons un nouveau deck pour chaque couleur et nous augmentons un nouvel
index pour chaque trait de couleur C'est donc tout pour ce tutoriel. Dans la partie suivante
de ce didacticiel, nous allons tracer des lignes pour toutes les couleurs sur le
canevas et le cadre. C'est donc tout pour ce tutoriel. Merci d'avoir regardé cette vidéo Sduned pour notre prochain tutoriel
10. Tracez des lignes pour la couleur du trait: C'est bon de vous voir,
les gars. Encore une fois, je suis de retour avec une autre vidéo en
lien avec ce projet. Et dans cette vidéo, nous
allons tracer des lignes pour toutes les couleurs de
la toile, du cadre
et du cadre lumineux. Au début, je vais
créer une liste, et le
nom de notre variable de liste est points points, égal à, et à l'intérieur
du carré, il est écrit que je vais passer les points. Et un par un, je vais mettre ces points dans cette liste. Tout d'abord, je vais passer des points
B, des points bleus. Ensuite, je vais passer les points G, qui sont des points verts. Ensuite, je vais
passer des points R, et enfin, je vais
passer des points Y, en boucle. Elles sont toutes le
moins différentes dans cette liste de points et toutes les
coordonnées les moins persistantes sont regroupées par trait. Nous devons maintenant exécuter une boucle pour itérer tous les
points un par un Pour cela, je vais exécuter une boucle
à quatre boucles. Ici pour taper pour moi, et je vais
utiliser la fonction de plage. Gamme. Dans
la fonction range, je vais utiliser in function. Ligne. Dans le cadre du processus du tour, je vais passer des points. Ensuite, à l'intérieur de cette boucle automnale, ce cube
itère
essentiellement sur l'index des points représentant
différentes couleurs,
telles que le bleu, le vert, le
rouge et le jaune Et maintenant, à l'intérieur de ces quatre boucles, nous devons itérer le trait à
partir de ces points Pour cela, encore une fois, je vais
lancer une autre boucle automnale pour J in range. À l'intérieur de la
fonction range, herramuty link. Ensuite, à l'intérieur des
versets ronds, je suis à égalité. Et puisque le carré est opposé,
je vais passer
à l'intérieur de cette boucle à quatre, maintenant à l'intérieur de cette boucle à quatre, nous devons itérer par itération les points du trait en
cours Pour cela, je vais
taper quatre autres boucles à portée de K à l'intérieur de
la cavité ronde Au début, je vais
passer le numéro d'index. Comme premier paramètre,
je vais en transmettre un. Ensuite, pour accéder
au coup actuel, ici la marée dans la fonction A N
et à l'intérieur des cuivres ronds, je vais accumuler des points À l'intérieur des cuivres carrés, je vais d'
abord passer I. Ensuite, je vais passer J.
Ensuite, à l'intérieur de cette boucle automnale, mais avant, laissez-moi
vous expliquer ces quatre boucles Ici, je commence par un car le code contient chaque point
jusqu'au point précédent. Si K commence à zéro, il n'y aura pas de point
précédent. Ensuite, à l'intérieur de ces quatre boucles, nous devons vérifier une condition. Si le point actuel ou le point
précédent est nul, nous devons
poursuivre ce processus. Pour cela, tapez ici les
points T dans le carré par rapport au point actuel I
puis dans la base carrée,
J, et encore une fois, à
l'intérieur du carré sis, un à K moins un est utilisation ou l'opérateur d'un héros nonne, et notre point précédent n'en est aucun, donc les points de type héros à
l'intérieur du carré sis I à
l'intérieur du carré sis J, et enfin, à l'intérieur du
carré sis je vais passer par rapport au point actuel I
puis dans la base carrée,
J, et encore une fois, à
l'intérieur du carré sis,
un à K moins un est l'utilisation ou l'opérateur d'un héros nonne,
et notre point précédent n'en est aucun,
donc les points de type héros à
l'intérieur du carré sis I à
l'intérieur du carré sis J,
et enfin, à l'intérieur du
carré sis je vais passer
K est nun
puis dans
cette condition IP, je vais taper continue. Alors je vais
continuer cette boucle. Ça veut dire que Panne a été trouvée. Je passe à l'itération suivante. Cela permet d'éviter les erreurs et de garantir
que le programme ne
tente pas de tracer une ligne
impliquant des points non valides. Ensuite, je vais tracer une
ligne dans une image vidéo en direct. Pour cela, nous allons
utiliser la méthode de ligne d'OpenCV. Ici, je vais taper la méthode des lignes à deux points
cv. Ligne. À l'
intérieur des bordures, nous devons d'abord transmettre l'image
source dans laquelle je veux tracer la ligne et je vais
passer le cadre de l'image Parce que nous allons tracer
la limite dans une vidéo en direct. C, alors nous devons passer les points de départ pour
les points de départ, je vais utiliser ce point. Ensuite, nous devons passer les
points de terminaison et pour les points de terminaison, je vais passer ce Copiez les valeurs des points et
je vais les mettre ici. Enfin, pour transmettre la couleur, quelle couleur nous allons utiliser, nous devons saisir
la valeur de la couleur en fonction du numéro
d'index. Type d'ourlet,
couleurs variables , couleurs, et à l'intérieur du carré par rapport à, je vais passer, l'itération, puis
pour passer épaisseur par épaisseur, je vais passer une épaisseur de deux ou
deux pixels la même manière, nous allons
tracer une ligne dans la fenêtre de peinture. Je duplique cette ligne et je vais remplacer
le nom de la fenêtre,
le nom de la source, la
fenêtre de peinture, celle-ci. Je vais régler celui-ci.
Maintenant, nous avons presque terminé. Nous devons maintenant montrer le
Wingo à l'aide des fonctions Imago. Donc ici, je vais
taper le CV deux. Nous devons d'abord le déplacer dans
l' étiquette d'indentation CV à deux
points ImSoma ImSo, je veux montrer notre durée de vie Et d'abord de fournir un nom de fenêtre pour ce
cadre, qui est la vie. Dessin en direct. Ensuite, nous devons
transmettre le nom du cadre. Le cadre que je veux montrer est le nom de
notre fenêtre. Ensuite, je vais dupliquer
cette ligne et cette fois, je veux montrer la fenêtre de peinture. Ici, je vais taper de la peinture. Je vais également changer
le nom de la variable. Je vais remplacer le cadre
par une fenêtre peinte, celle-ci. Encore une fois, je vais
dupliquer cette ligne et cette fois je vais
afficher la fenêtre du masque. Ici, je vais taper
des masques. Je vais remplacer le masque de nom de fenêtre. Et
je vais configurer ce fichier. Hé, avant d'exécuter ce code dans mon
terminal, je tiens à dire que je vais utiliser cette barre de
couleur pastel comme outil de suivi. Comme vous pouvez le voir, il s'agit
d'une barre de couleur bleue, et comme vous le savez, par défaut, nous allons sélectionner
la couleur bleue. Il va donc
suivre ce pointeur. Passons maintenant à l'écran
de l'ordinateur. Encore une fois, je suis de retour dans l'éditeur de code de mon studio de
résultats, et je vais exécuter ce
code dans mon terminal Je vais
donc appuyer sur
le bouton Exécuter. Après avoir appuyé sur le bouton Exécuter, comme vous pouvez le voir, la fenêtre du
détecteur de couleur
s'affiche d'abord . À partir de là, à l'aide de ce curseur, vous pouvez cibler n'importe quelle couleur Comme vous le savez, par défaut, nous ciblons la couleur bleue et nous devons attendre un certain
temps pour démarrer la webcam. Vous pouvez maintenant voir ici qu'il
a ouvert au total trois fenêtres, une fenêtre
en direct, une
fenêtre de peinture et une fenêtre de masque. Je vais aligner ces
fenêtres côte à côte. Maintenant je vais commencer à dessiner. Ici, je prends déjà un pointeur bleu et je le
cache entre mon doigt. Maintenant, je vais commencer à
dessiner en l'utilisant. Comme vous pouvez le voir, notre caméra suit notre marqueur
et trace une ligne. Je commence à dessiner en bleu, et vous pouvez voir le dessin
dans notre fenêtre de dessin clair, vous pouvez
également voir
le même dessin dans notre fenêtre de peinture blanche
dans notre fenêtre de masque, vous pouvez voir le
masque binaire dans notre fenêtre de masque, vous pouvez remarquer qu'il ne suit que
le marqueur de couleur bleue. Il ne suit rien
d'autre de cette vidéo, et maintenant je vais cacher
ce marqueur et commencer à dessiner à
partir d'un point différent. Et je vais commencer à
dessiner à partir de cette position. Vous pouvez remarquer, encore une fois, qu'il commence à tracer le chemin
à partir de cette position. De cette façon, vous pouvez tracer ligne
différente à une position
différente. Maintenant, laissez-moi vous montrer comment
pouvons-nous changer de couleur ? Comment pouvons-nous changer la couleur
de cette ligne de trait ? Pour cela, nous devons déplacer
le pointeur sur le bouton de couleur. Au début, je vais
déplacer ce pointeur sur le bouton de couleur
verte et maintenant
il sélectionne la couleur verte. Si je commence à dessiner, vous pouvez maintenant le
voir dessiner la ligne
avec des couleurs vertes. De même, si vous
souhaitez changer de couleur, vous devez placer votre
marqueur sur la couleur suivante. Pour l'instant, je vais
sélectionner la couleur rouge. Maintenant, il va commencer à dessiner une ligne de
trait de couleur rouge. De la même manière, vous pouvez
sélectionner la couleur jaune. Il vous suffit de placer
votre pointeur au-dessus
du bouton jaune Ensuite, vous pouvez commencer à dessiner
en utilisant une ligne de couleur jaune. C'est ainsi que vous pouvez
changer de couleur une par une. Et si vous souhaitez
effacer cette fenêtre, vous devez déplacer votre marqueur
au-dessus du bouton de la voiture. Comme vous pouvez le voir, après avoir déplacé ce marqueur au-dessus
du bouton Effacer, la fenêtre
est effacée. Encore une fois, vous pouvez commencer à
dessiner dans ce canevas. Nous avons donc construit avec succès
notre projet de dessin. Et si vous voulez
clôturer ce projet, vous devez faire l'éloge du petit Q. Il va fermer les fenêtres.