Comment mettre une image de masque pour grabCut dans OpenCV?
Comment puis-je mettre une image de masque pour le grabCut fonction OpenCV?
Je veux faire GC_INIT_WITH_MASK avec les options
GC_BGD = 0,
GC_FGD = 1,
GC_PR_BGD = 2,
GC_PR_FGD = 3,
Si vous pouvez répondre à cette avec JavaCV il serait grand comme je le fais ce dans le Scala/Java.
OriginalL'auteur Phil | 2013-01-01
Vous devez vous connecter pour publier un commentaire.
Exemple de travail dans OpenCV:
Il s'avère GC_FGD zone n'est jamais modifié par grabCut, GC_PR_BGD et GC_PR_FGD sont modifiées.
OriginalL'auteur William
OriginalL'auteur SunHui
Les images de l'entrée (lena.png, lena_mask.png):
Code (JAVA):
Résultat:
0,64,128,192
signifier dansconvertToOpencvValues
et85,170,255
signifier dansconvertToHumanValues
respectivement?Ils sont les valeurs de seuil dans votre masque (comme vous pouvez le voir, le masque utilise différents niveaux de gris: blanc= je suis absolument sûr, il fait partie de mon résultant segment, noir=je n'ai pas l'habitude de ces pièces pour vous, la lumière niveaux de gris= oui, probablement en résultant segment, sombre grasycale= probablement pas en résultant segment). Valeurs de niveaux de gris sont dans la gamme de 0 à 255, les plages sont 0-85-170-255.
OriginalL'auteur Radim Burget
L'image initiale masque est le deuxième argument de
grabCut
, de sorte que vous devez simplement être en mesure de créer une image avecCvMat.create()
et puis définissez les valeurs de manière appropriée àGC_BGD, GC_FGC, GC_PR_BGD, GC_PR_FGD
, par exemple (pas pu tester le code sur cet ordinateur):Je ne suis pas le plus familier avec javacv, il est probablement une bonne façon de définir les valeurs dans des plages ou des blocs pour le masque au lieu d'un seul pixel à la fois.
Également, selon le docs pour
grabCut
:OriginalL'auteur WildCrustacean