cvWriteFrame et niveaux de gris
salutations
j'essaye de faire un traitement et d'en ressortir une video
tant que mon traitement etait en couleur tout allait bien (la video de sorti etait correcte)
j'ai converti mes images en noir et blanc et tenté d'en faire une video, mais là c'est le drame
je me retrouve avec une video pas vraiment conforme à mes attentes
on retrouve sur la premiere ligne le resultat attendu en 3 exemplaire
sur la 2ieme ligne la video source en grayscale ...
voyez par vous même:
http://img291.imageshack.us/img291/9...alevideyc2.png
http://img291.imageshack.us/img291/9...17d25297c5.jpg
ça pue le 'je met du grayscale là ou il fallait mettre du RGB et donc ça déborde et ça vas tapper dans d'autres zones mémoires'
il n'as pas l'air d'être interdit de faire des videos en grayscale dans la doc, je ne vois rien non plus qui me permette de changer les parametres de la video ... je ne comprend pas :aie:
sauvegarder les frames dans des .png me donne des resultats corrects (l'image resultat dans le bon format)
le code strippé:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
init()
{...
tmpwriter2 = cvCreateVideoWriter("out2.avi",CV_FOURCC('D', 'I', 'V', 'X'),20,frameSize,0);
...}
getframe(my_cap *this)
{...
cap = cvRetrieveFrame(this->capture);
cvCvtColor(cap, img,CV_RGB2GRAY );
cvSaveImage("sub.png",this->imgs[this->idex]);
cvWriteFrame(tmpwriter2,this->imgs[this->idex]);
...}
endcap()
{...
cvReleaseVideoWriter(&tmpwriter2);
...} |