Comment “zéro”, le tout au sein d'un masqué une partie d'une image dans OpenCV
Si j'ai une image (IplImage 8 bits) et un masque binaire (qui est aussi un 8-bit IplImage de la même taille, où chaque pixel a une valeur de 0 ou 255), comment puis-je faire de chaque pixel de l'image correspond à un pixel du masque avec une valeur de zéro ont une valeur de zéro, et chaque pixel de l'image correspond à un pixel du masque avec une autre valeur (à savoir, 255) ont la même valeur que dans l'image d'origine?
En d'autres termes, tout ce qui est "dans la zone de masque" conserve sa valeur d'origine, et rien en dehors de la zone de masque deviendra zéro.
OriginalL'auteur Jackson Dean Goodwin | 2012-07-10
Vous devez vous connecter pour publier un commentaire.
Vous pouvez simplement utiliser
bitwise_and()
fonction.Consultez la documentation.
rahman K , le Masquage doit toujours être binaire et un seul canal ? 8 bits ?
Pour les utiliser dans des fonctions comme bitwise_and (), etc, oui, il devrait être 8bit seul canal de l'image binaire.
OriginalL'auteur Abid Rahman K
Façon la plus simple, avec 'Mat img' (image masquée, entrée) et 'Mat masqué' (image masquée, de sortie):
où 'Mat mask" est une matrice non nécessairement binaire (copyTo tient compte d'éléments avec la valeur zéro). Masqués peuvent être de toute taille et le type; elle est réaffecté en cas de besoin.
Voir le doc.
OriginalL'auteur Antonio Sesto
De multiplier ou de peu-et le masque avec de l'image. Il y a quelques fonctions OpenCV pour cela, mais je ne connais pas leurs noms pour l'interface C.
en C++:
OriginalL'auteur Sam