J'ai une image IplImage à 3 canaux. Je voudrais créer une image à 4 canaux et définir le canal alpha pour lui à une valeur inférieure à 1.0 pour le rendre semi-transparent.openCV: ajouter de la transparence à IplImage
d'abord, je régler le canal alpha (le canal 4-e) de 0,5:
cvSet(Image_c4, cvScalar(0,0,0,0.5);
Voici la commande que j'utilisé pour copier l'image 3 canaux en une image à 4 canaux.
cvCvtColor(Image_c3, Image_c4, CV_RGB2RGBA);
Le problème: Image_c3 est en couleur. Image_c4 devient une copie en niveaux de gris de Image_c3 (et sans transparence).
Mise à jour: Il est avéré que le code ci-dessus est en fait correcte et de travaux et est en fait plus concis que les solutions proposées dans les réponses ci-dessous. J'ai eu un bug sans rapport ailleurs.
Merci d'avoir pris le temps de répondre. Il s'est avéré que le code dans ma question était correct et j'avais un autre bug sans rapport. Votre code est également correct, mais le cvCvtColor fait la même chose, mais c'est beaucoup plus simple. – RawMean