62 votes

Comment charger des images png avec 4 canaux?

J’ai essayé de charger des fichiers .png avec le canal de transparence (RGB et Alph) sans succès. Il semble qu’openCV supprime le 4ème canal de l’image. Existe-t-il une méthode pour charger l’image avec les 4 canaux complets, y compris le canal alpha, même si je devais modifier le code source OpenCV et le reconstruire?

115voto

Satya Mallick Points 1394

Si vous utilisez OpenCV 2 ou OpenCV 3, vous devez utiliser des indicateurs IMREAD_* (comme mentionné ici).

C++

Python

17voto

Nikhil Points 121

La bonne façon de lire un PNG transparent est d’utiliser le 4ème canal comme canal alpha. La plupart du temps, on veut un fond blanc, si c’est le cas, le code ci-dessous peut être utilisé pour le compositing alpha.

Un blog détaillé à ce sujet est ici.

16voto

Selon la documentation,OpenCV prend en charge le canal alpha sur les NT.

Il suffit d’appeler la fonction imread en utilisant CV_LOAD_IMAGE_UNCHANGED comme drapeaux comme ceci:

5voto

Derzu Points 2463

Si vous souhaitez dessiner cette image transparente sur une autre image, ouvrez votre image comme répondu par @satya-mallick (mode IMREAD_UNCHANGED), puis utilisez cette méthode pour dessiner l’image sur un tapis d’image :

4voto

0xPrateek Points 994

La meilleure façon possible de charger une image png avec les 4 canaux est ;

Selon la documentation openCV,
Si la valeur de l’indicateur est,
1) =0 Renvoyer une image en niveaux de gris.
2)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X