Comment masquer une partie d'une image sous matlab?
Je voudrais savoir comment masquer une partie d'une image en NOIR & BLANC ?
J'ai reçu un objet à bord détecté, mais j'ai d'autres blanc interférer objets en arrière-plan qui sont au-dessous de la cible de l'objet ... je voudrais masque toute la partie inférieure d'une image de noir, comment puis-je le faire ?
Merci !!
MODIFIER
Je tiens également à masquer certaines autres parties (partie supérieure) ... comment puis-je le faire ?
Veuillez expliquer le code parce que j'ai vraiment wnat d'apprendre comment il fonctionne et de l'appliquer dans ma propre compréhension.
EDIT2
Mon image est 480x640 ... Est-il un moyen de masque spécifique de pixels ? par exemple 180x440 de l'image ...
Je veux dire dans l'espace ...
OriginalL'auteur NLed | 2010-05-15
Vous devez vous connecter pour publier un commentaire.
Si vous avez un 2-D de l'intensité des niveaux de gris de l'image stockées dans la matrice
A
, vous pouvez définir la moitié inférieure de noir en procédant comme suit:Cela fonctionne d'abord d'obtenir le nombre de lignes dans
A
à l'aide de la fonction TAILLE, de diviser par 2 et arrondi à obtenir un index entier près du centre de la hauteur de l'image. Ensuite, le vecteurcenterIndex:end
index de toutes les lignes à partir du centre de l'index à la fin, et:
index de toutes les colonnes. L'ensemble de ces éléments indexés sont mis à 0 pour représenter la couleur noire.La fonction CLASSE est utilisée pour obtenir le type de données de
A
de sorte que 0 peut être exprimées à l'aide de la fonction CAST. Cette peut ne pas être nécessaire, même si, comme 0 sera probablement automatiquement converties dans le type deA
sans eux.Si vous souhaitez créer un index logique pour l'utiliser comme un masque, vous pouvez effectuer les opérations suivantes:
Maintenant,
mask
est une logique de la matrice avectrue
(c'est à dire "1") pour les pixels que vous souhaitez conserver etfalse
(i.e. "0") pour les pixels que vous souhaitez définir à 0. Vous pouvez définir plusieurs éléments demask
àfalse
comme vous le souhaitez. Ensuite, lorsque vous souhaitez appliquer le masque, vous pouvez effectuer les opérations suivantes:Pas de problème. 😉 J'ai mis à jour ma réponse avec une explication et un code pour la création d'une logique de masque.
Merci beaucoup 🙂 Un problème cependant, la logique de l'indice utilisé pour le masquage ne fonctionne pas ici 🙁 je ne sais pas pourquoi !! La précédente fonctionne bien, mais il coupe le dernier point où l'objet tombe (l'objet tombe un peu après 1/2 taille de l'image) .. Est-il une manière que je peux utiliser la première méthode pour bloquer la partie supérieure de l'espace ? MODIFIER puis-je utiliser un moyen de bloquer des pixels ? J'ai un 480x640 image ..
Pas sûr pourquoi, la logique de l'index ne fonctionne pas. Quel message d'erreur avez-vous? Vous pouvez bloquer les autres parties de l'image en réglant d'autres gammes d'indices à 0 (comme je l'ai fait dans le premier exemple). Par exemple,
A(1:5,:) = 0;
ensembles les 5 premières lignes de noir, tandis que lesA(180,440) = 0
définit le pixel en ligne 180 et de la colonne 440 noir.Bien !! Je l'ai eu ... j'avais placé
mask(1:5,:)
au lieu deimage(1:5,:)
.... Maintenant, j'ai eu quelques premiers rangs = false et im heureux que ça fonctionne 🙂 merci ... maintenant que je peux le masque de ces premières lignes ET la dernière de 50 lignes par exemple ?OriginalL'auteur gnovice
OriginalL'auteur Jerry T