2017-10-05 3 views
0

-je remplir la peinture murale avec caméra vidéo en temps réel à l'aide d'inondation remplissage, les résultats du code ci-dessous dans une couche blanche sur l'image:Comment utiliser le remplissage d'inondation pour colorer un mur sur un caméscope en utilisant OpenCV?

(void) processImage:(cv::Mat&)image 
{ 
    cv::Mat mask; 
    cv::Point seed(100,200); 
    cvtColor(image, image, cv::COLOR_RGBA2RGB); 

    cv::floodFill(image, mask, seed, cv::Scalar(255, 10, 20) ,0, cv::Scalar(2,2, 2), cv::Scalar(2,2, 2), 4); 
    cvtColor(image, image, cv::COLOR_RGB2RGBA); 
} 

Quelqu'un peut-il me aider?

Répondre

1

!! .... Résolu Retirer cette conversion ......

cvtColor(image, image, cv::COLOR_RGB2RGBA); 
+0

Bon travail déterminer la problème! Peut-être que si vous ajoutez une documentation qui montre pourquoi c'était un problème, cela peut aider les autres à l'avenir! :) –

+0

Merci .. Il n'y a pas besoin de convertir l'image d'un espace de couleur à un autre car il ajoute un espace de couleur sur votre région d'image semi-uniforme qui n'est pas nécessaire ici. –

0

Vous avez obtenu image convertie de mask

Essayez cette

-(void) processImage:(cv::Mat&)image 
{ 
    cv::Mat mask; 
    cv::Point seed(100,200); 
    cvtColor(image, image, cv::COLOR_RGBA2RGB); 

    cv::floodFill(image, mask, seed, cv::Scalar(255, 10, 20) ,0, cv::Scalar(2,2, 2), cv::Scalar(2,2, 2), 4); 
    // Now you will get converted image from 'mask' 
} 
+1

Ceci ne fournit pas de réponse à la question. Une fois que vous avez suffisamment [réputation] (https://stackoverflow.com/help/whats-reputation) vous pourrez [commenter n'importe quel article] (https://stackoverflow.com/help/privileges/comment); Au lieu de cela, [fournissez des réponses qui ne nécessitent pas de précisions de la part du demandeur] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- je-fais-à la place). - [De l'examen] (/ review/low-quality-posts/17535792) – Dmitry