Convertir une image de canal unique en image 3 canaux C ++ / OpenCV
Im en utilisant openCV C++
Im besoin pour convertir un seul canal de l'image à 3 canaux de l'image. Donc, je peux utiliser ceci: cvCvtColor(result,gray,CV_BGR2GRAY);
Je ne peux pas le faire parce que le résultat img est un canal unique de l'image. Des idées?
source d'informationauteur Harry
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser
CV_GRAY2BGR
au lieu deCV_BGR2GRAY
.J'ai vérifié cvtColor dans OpenCV livre de référence, et trouvé ceci:
J'ai utilisé
pour convertir un 3-canaux Mat pour 1-canaux, et cela a fonctionné. Par conséquent, la modification dstCn à 3 pourraient travailler pour vous 🙂
Essayez ceci:
À la fois de l'heure d'été et gris doivent avoir leurs types de données de même. Vous ne pouvez pas tout simplement de fusionner un flotteur dans un uint matrice. Vous devrez utiliser cvScale.
Essayer de fusionner gris,gris,gris dans un BGR.
À mon humble avis:
Si l'entrée est gris, puis la sortie serait grise. Le meilleur que vous pouvez obtenir est une couleur distribué image basée sur les données de pixel dire
(110, 110, 110)
pour les données de pixel de110
, et non pas la vraie couleur de l'image