Bienvenue, Invité. Merci de vous connecter ou de vous inscrire. Avez-vous oublié d'activer ?

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - Jio Freed

Pages: [1]
1
Graphique / Re : Petit bug sur TextureRender
« le: Mai 15, 2012, 09:52:26 am »
Ah, effectivement, j'avais pas vu cette partie là du site...
J'avais regardé sur le forum s'il y avait une partie bug, j'ai pas pensé à regarder sur le site -__-
Désolé pour le dérangement alors, je ferais plus attention :)

2
Graphique / Re : Petit bug sur TextureRender
« le: Mai 15, 2012, 09:39:31 am »
Intel Express Family, oui. Si tu l'as deviné, ca doit vouloir dire que c'est normal que ca ne marche pas?

3
Graphique / Petit bug sur TextureRender
« le: Mai 15, 2012, 09:03:51 am »
Bonjour!
Tout d'abord, je tenais à signaler que je ne recherche pas d'aide particulière, simplement à signaler l'éventuelle présence d'un bug à propos du RenderTexture.

Voilà l'exemple de mon code :

texture.clear();
texture.draw(screenDial);
if(lines.size()>0)
{
    for(int i = numDial - 3; i <= numDial ; i++)
    {
        if(i< lines.size())
        {
            int num = numDial - i;
            lines[i].setPosition(220, (25*i) + 70);
            texture.draw(lines[i]);
        }
    }
}

texture.display();
window->clear();
Sprite s(texture.getTexture());
window->draw(s);
window->display();

ce code est censé dessiner un fond et des lignes de textes dans une texture. J'ai testé ce code chez moi (Win7) et ca marche très bien.
En revanche, une fois sur l'ordi du boulot(WinXP) (oui, j'ai du temps libre donc je continue mes projets persos), l'écran reste noir, sans avoir toucher au code. Tout est parfaitement configuré sur cet ordi aussi mais ca ne veut pas. Mais si je fais ca à la place de faire ca :

window->clear();
Sprite s(texture.getTexture());
window->draw(s);
window->display();

je fais ca :

window->clear();
Texture tex(texture.getTexture());
Sprite s(tex);
window->draw(s);
window->display();

tout remarche normalement. Je ne sais pas a quoi c'est dû, mais je voulais le signaler

4
Graphique / Re : Lire une vidéo / OpenCV [réglé]
« le: Mai 13, 2012, 04:42:10 pm »
D'accord, je saurais m'en souvenir ^^
Mais comme a priori, ca a l'air de marcher, et que je ne voulais rien faire d'autre que lire une vidéo et la stopper, ca devrait aller sans soucis ;)

5
Graphique / Re : Lire une vidéo / OpenCV [réglé]
« le: Mai 12, 2012, 11:25:52 pm »
Et bien en fait, j'me suis pas trop posé de questions ^^
sfeMovie avait une présentation en français, j'ai donc commencer par celui-là, et ca a marché tout de suite, et très facilement ^^

6
Graphique / Re : Lire une vidéo / OpenCV
« le: Mai 12, 2012, 08:14:40 pm »
Hey, Merci!
C'est très simple à utiliser et ca marche super bien!
Avec le logiciel SUPER pour convertir mes vidéos, j'suis tranquille!

Merci :D

7
Graphique / Re : Lire une vidéo / OpenCV
« le: Mai 12, 2012, 07:24:53 pm »
Ah tiens, je n'avais pas encore vu ca!
Etrange, vu le temps de recherche que ca m'a pris deja pour trouver OpenCV...
Je vais jeter un oeil! (La vidéo est en avi mais je peux la convertir au besoin, j'ai ce qu'il faut ;) )

8
Graphique / Re : Lire une vidéo / OpenCV
« le: Mai 12, 2012, 06:05:14 pm »
Ah mince, apparemment, c'est du RGB et non du RGBA, faut que je trouve le moyen de passer dans ce format là alors

9
Graphique / Re : Lire une vidéo / OpenCV
« le: Mai 12, 2012, 04:29:12 pm »
J'ai essayé la fonction que tu as donnée, mais j'ai maintenant une erreur de compilation :

||=== sfml2, Debug ===|
C:\Users\Anthony\Prog\sfml2\Video.cpp||In member function 'void Video::Play()':|
C:\Users\Anthony\Prog\sfml2\Video.cpp|82|error: invalid conversion from 'char*' to 'const sf::Uint8*'|
C:\Users\Anthony\Prog\sfml2\Video.cpp|82|error:   initializing argument 1 of 'void sf::Texture::update(const sf::Uint8*)'|
||=== Build finished: 2 errors ===|

edit : j'ai tenté le cast en remaplcant ta fonction par  tex.update((sf::Uint8*)img->imageData);
Mais l'image reste toujours noire. j'ai vérifié que ca ne venait pas d'OpenCV, car je sauvegarde a chaque fois l'image courante, et elle est bonne

edit2 : Pour le sprite, je sais pas pk j'avais fait ca, j'ai changé ca, je l'ai remplacé par un simple srite->SetTexture(tex);
Et j'ai également créé une deuxieme image IplImage avec un format 32bits, j'ai convertit le frame capturé, afin d'être sur que le format respecte ce que tu m'as dit, mais l'image reste toujours noire

img = cvRetrieveFrame( capture );
    resizedImg = cvCreateImage(cvSize(img->width, img->height), 32, img->nChannels);

    // Tant qu'on n'a pas appuyé sur Q, on continue :
    while(key != 'q')
    {
        sf::Event event;
        while (window->pollEvent(event))
        {
            if ((event.type == sf::Event::KeyPressed) && (event.key.code == sf::Keyboard::Q))
                key = 'q';
        }

        temps = clock.getElapsedTime().asMilliseconds();
        if(temps>next)
        {

            next += delay;
            img = cvRetrieveFrame( capture );

            cvConvertScale(img, resizedImg);

            // Cette fonction me permet de sauvegarder l'image pour vérifier qu'elle soit bonne à la base
            cvSaveImage("test.jpg", resizedImg);

            tex.update((sf::Uint8*)resizedImg->imageData);
            sprite->setTexture(tex);

            if(!cvGrabFrame( capture ))
            key = 'q';


        }

        window->clear();
        window->draw(*sprite);
        window->display();
    }

10
Graphique / Re : Lire une vidéo / OpenCV
« le: Mai 12, 2012, 04:07:25 pm »
Oui, excusez moi, je ne l'avais pas mis car je faisais encore des tests, hélas infructueux...
Voilà le code que j'ai:

while(key != 'q')
    {
        sf::Event event;
        while (window->pollEvent(event))
        {
            if ((event.type == sf::Event::KeyPressed) && (event.key.code == sf::Keyboard::Q))
                key = 'q';
        }

        // gestion du temps pour lire la vidéo selon le framerate déjà calculé
        temps += clock.getElapsedTime().asMilliseconds();
        clock.restart();
        if(temps>next)
        {
            next += delay;
            // On capture le frame (img : IplImage*)
            img = cvRetrieveFrame( capture );

            // On crée l'iamge SFML qui va l'accueillir
            sf::Image sfmlImg = Image();
           
            sfmlImg.loadFromMemory((void*)img->imageData, (size_t)(img->imageSize));
            tex.loadFromImage(sfmlImg);
            sprite = new Sprite(tex);


        }

    window->clear();
    window->draw(*sprite);
    window->display();
    }


je n'ai plus d'erreur de compilation, mais lors de l’exécution, j'ai une erreur de chargement de l'image :
"Failed to load image to memory"

Je suppose que cela vient du fait que ce n'est pas une image qui a un type (.jpg ou autre...), mais du coup, comment je dois m'y prendre?


11
Graphique / Lire une vidéo / OpenCV [réglé]
« le: Mai 12, 2012, 03:37:12 pm »
Bonjour!

Je suis actuellement en train de regarder les compatibilité d'OpenCV pour la lecture de vidéos, dans le but de créer un jeu.
Mais avant de faire le choix de la librairie, j'aimerais pouvoir y ajouter des vidéos, qui feraient office de cut-scènes ou d'intro du jeu.
J'ai réussi à faire fonctionner la librairie OpenCV, qui permets la décomposition d'un flux vidéo en frame, avec la librairie SDL. Cependant, j'ai quand même une grosse préférence pour la SFML, sur laquelle j'ai déjà travaillé. Cependant, je ne parvient pas à passer une image d'OpenCV (IplImage) a un format d'image de la SFML (Image ou Texture, peu importe).
En effet, le format OpenCV permet d'obtenir un char*, représentant l'image, mais impossible de le rendre compatible avec un void* (cast refusé) ou un Uint8*...

Je suppose que je m'y prends mal ou que j'ai raté quelque chose...
Je code sous Win7 / Codeblocks.

Quelqu'un se serait déjà penché sur ce problème ou a déjà trouvé une solution?

Pages: [1]