IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

recherche bibliothèque traitement d'image très très simple


Sujet :

C

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 90
    Points : 50
    Points
    50
    Par défaut recherche bibliothèque traitement d'image très très simple
    bonjour tout le monde.
    bon, je vais poster ici après avoir passé beaucoup de temps a chercher tout seul.

    voila, je voudrais faire de la manipulation d'image en c.
    je sais qu'il existe une multitude de bibliothque pour faire ça, MAIS:
    1) elles sont complexe.
    2) elles nécessite les droit admin pour êtres utilisées.
    3) elles sont en c++
    4) ! Elles sont sous toutes sortes de licenses qui ne permettent pas de faire TOUT ce qu'on veut :p !
    5) elles sont complexes (non, je l'ai déjà dit )

    bref, je cherche en fait une bibliothèque avec comme fonction:

    1) imagecreate ->créé une ressource image, surement de type fichier tout simplement.
    2) imagesave ->sauve la ressource d'image dans un fichier. Surement un alias de la fonction fclose
    3) imagecolorat (ressource, x, y) ->retourne la couleur du pixel au coordonnée x et y. Si les pixels sont stokés sur une ligne, ça va aussi (je ferais appel a l'opérateur modulo avec d'autres truc pour refaire la fonction que je viens de présenter).
    4) imagesetpixel (ressource, x, y, color) -> met un pixel de couleur 'color' a l'emplacement x:y.


    merci beaucoup pour votre aide.
    Je n'ai pas trop besoin d'autre chose. avec juste ça, je pourrai refaire mes propres bibliothèques, et je pourrais aussi apprendre les bases (je m'interesse beaucoup a "comment c'est fait?" et la meilleure façon de comprendre les enjeux et les problèmes, c'est d'essayer soi-même. Et puis, on ne sait jamais, j'espère trouver une idée "toute bète", que personne n'aura eut (*rève tout haut*).

    Si vous connaissez ce genre de librairie, merci beaucoup pour votrre aide

  2. #2
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonjour,

    il y a une liste très riche de bibliothèques dans le forum "Algorithmes/Traitement d'images". Tu en trouveras de nombreuses qui sont libres, je dirai même la plupart.

    - Le fait que les bibliothèques soient en C++ ne t'empèche nullement de les utiliser en C. OpenCV est une bibliothèque apparemment très complète en C++ que beaucoup utilisent en C.
    - Le fait d'avoir les droits d'admin est quasi indispensable lorsque tu souhaites installer une bibliothèque dans ta machine. Si tu es dans une université, demande à l'administrateur de la rajouter.
    - Pour une bibliothèque aussi simple que ce que tu le demandes, je te conseille fortement de la construire toi même ou de recopier les structures existantes dans d'autres bibliothèques : une image est un simple tableau à une ou deux dimensions contenant la valeur d'un pixel. Ce pixel peu coder soit un niveau de gris, donc c'est une simple valeur entière ou un triplet codant la couleur et tu crées à ce moment là une simple structure qui contient R G B.

  3. #3
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    Par défaut
    Citation Envoyé par ToTo13 Voir le message
    Bonjour,

    il y a une liste très riche de bibliothèques dans le forum "Algorithmes/Traitement d'images". Tu en trouveras de nombreuses qui sont libres, je dirai même la plupart.

    - Le fait que les bibliothèques soient en C++ ne t'empèche nullement de les utiliser en C. OpenCV est une bibliothèque apparemment très complète en C++ que beaucoup utilisent en C.
    Il faut tout de même que l'utilisation en C ait été prévue. La plupart des bibliothèques C++ que je connais (pas nécessairement dédiées au traitement d'images) ne sont pas utilisables en C, ou alors une passerelle (binding) doit être prévue. Si wxWidgets, Qt ou Boost étaient utilisables en C, ça se saurait.

    Je rappelle que pour qu'une fonction C++ puisse être appelée depuis le C, il faut qu'elle soit déclarée avec extern "C" (c'est une question d'ABI, une fonction ne sera pas "décorée de la manière selon qu'il s'agit d'une fonction C ou C++). Si la bibliothèque en question utilise les possibilités de programmation orienté objet du C++ ou la surcharge des fonctions, la conception d'une passerelle vers le C n'est pas triviale.

    A l'inverse, utiliser une bibliothèque C en C++, moyennant quelques aménagements, ne pose pas de problème particulier.

    Thierry

  4. #4
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonjour,

    je suis peut être allé un peu vite, c'est vrai.

    En revanche :
    Citation Envoyé par Thierry Chappuis Voir le message
    Si wxWidgets, Qt ou Boost étaient utilisables en C, ça se saurait.
    Dans mon laboratoire, deux personnes ont fait leurs thèse d'imagerie en C, en utilisant wxWidgets et Qt. Boost je ne sais pas.

  5. #5
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    Par défaut
    Citation Envoyé par ToTo13 Voir le message
    Dans mon laboratoire, deux personnes ont fait leurs thèse d'imagerie en C, en utilisant wxWidgets et Qt. Boost je ne sais pas.
    Là ça m'intéresse. Même si j'ai vaguement entendu parler de Bindings Qt, je n'ai jamais rien vu de tel pour wxWidgets. Si tu as des infos ou des liens, je suis preneur (éventuellement par mp pour ne pas polluer ce post).

    Thierry

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 39
    Points : 47
    Points
    47
    Par défaut
    Bonjour !

    J'ai programmé en C des fonctions qui font ce que tu veux [m'adresse à bubuche87], au moins pour des couleurs en 24 bits. Après c'est pareil pour les autres définitions.

    Les fonctions peuvent faire ça :
    - lire un fichier .bmp
    - enregistrer au format .bmp
    - modifier l'image à volonté pixel par pixel
    - flouter l'image (exemple de traitement d'image)
    - faire l'inverse video (autre exemple)

    J'ai fait ça aussi pour tenter de faire un simulacre de bibliothèque de traitement d'image, mais je n'ai pas continué, pas le temps.
    Je n'ai pas mon code sous la main là tout de suite, si c'est ça que tu veux je donnerai un lien.

  7. #7
    Membre averti Avatar de icer
    Inscrit en
    Janvier 2006
    Messages
    332
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 332
    Points : 363
    Points
    363
    Par défaut
    Bonjour,

    Je pense qu'avec la libgd tu trouvera ton bohneur. Je l'ai utilisé avec le binding avec le language php pour réalisé des graphiques, satisfaisant. Voici quelque fonctionnalité (de mémoire) :

    - prise en charge de plusieurs format, bmp, png, jpg...
    - primitives de base : lignes, cercles...
    - quelque filtres, flou
    - mélange d'image avec transparence...

    Plus d'info sur le site officiel

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    absolument..
    moi je l'est utilisee pour du gif pur, mais ca marche tres bien et c'est simple...

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 39
    Points : 47
    Points
    47
    Par défaut
    Ah je vais jeter un coup d'oeil à libgd aussi alors.

    En attendant voilà mon code tout simple pour lire et écrire des BMP en 24 bits.
    Lien : ici

  10. #10
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    tu as aussi xv et son code source.....

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 90
    Points : 50
    Points
    50
    Par défaut
    désolé de ne pas avoir répondu plus tôt, mais comme je n'ai pas eut de mail disant qu'il y avait une réponse... ^^"
    Enfin, je faisais encore des recherches sur google, et là je suis tombé sur un sujet qui ressemblait beaucoup au mien, et ou il y avait des réponses... qui en fait était le mien, ici ^^"

    bref, merci beaucoup, je vais essayer

    pour la libgd, si c'est là même que php, OUI, je connais (c'est comme ça que j'avais fait un pseudo logiciel de retouche d'image mais qui hélas avais des défauts du au problèmes inhérent d'aller retour serveur même en local).

    donc, si les fonctions sont les même, c'est trop super powerfull, faut juste que j'essai de les utiliser pour voir comment on peut faire ça en C (un #include ? non, je pense que ça doit être autre chose ^^).

    En plus, on devait choisir un projet professionnel aujourd'hui, et j'ai dit que je voulais travailler dans la création de logiciels et plus particulièrement de retouche d'image

    Bref, merci beaucoup tout le monde, je vais essayer de voir ce que je peux faire

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 90
    Points : 50
    Points
    50
    Par défaut
    Bon, alors pour nouvelles :
    j'ai téléchargée la librairie gd, et j'ai eut le plaisir de retrouver les fonction que je connaissait déjà, ou presque. Je vais donc pouvoir allègrément repiocher dans mes anciens script, même si je vais bien sur devoir faire plein de modif (et en profiter pour améliorer le tout).

    le seul problème, et qui est de taille, c'est que quand je veux compiler, j'ai plein de messages d'erreurs du genre :

    [Linker error] undefined reference to `_imp__gdImageCreateTrueColor@8'
    [Linker error] undefined reference to `_imp__gdImageColorAllocate@24'

    et autres :/
    Sachant que je n'ai pas appelé ces fonctions, mais "gdImageCreateTrueColor", et "gdImageColorAllocate".

    Au moins, cela m'aura appris une chose : a priori, on peut mettre des "@" dans les noms des fonctions.
    Ceci dit, ce n'est pas très joli.

    enfin, cela n'empèche que ça ne marche pas terrible, donc, si quelqu'un a une idée...

    (je travaille sous windows, et j'utilise devc++).

    Merci d'avance

  13. #13
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    Tu dois lier ton projet à la bibliothèque statique d'importation gd.
    Elle doit avoir un nom du genre gd.lib ou libgd.a...

  14. #14
    Membre averti Avatar de icer
    Inscrit en
    Janvier 2006
    Messages
    332
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 332
    Points : 363
    Points
    363
    Par défaut
    Sachant que je n'ai pas appelé ces fonctions, mais "gdImageCreateTrueColor", et "gdImageColorAllocate".

    Au moins, cela m'aura appris une chose : a priori, on peut mettre des "@" dans les noms des fonctions.
    Ceci dit, ce n'est pas très joli.
    En fait il s'agit bien de tes fonctions, mais se sont leur nom interne dans les fichiers objets compilés.

    Mais je ne m'y connais pas trop quelqu'un pourrait confirmer ?

  15. #15
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    icer: Je confirme. Le nom interne indique plusieurs choses supplémentaires sur les fonctions, d'ailleurs:
    • Ce sont des fonctions avec interface C et non pas C++
    • Elles utilisent la convention d'appel __stdcall, et non pas la convention "normale" du C. Cela leur permet d'être compatibles avec d'autres langages, comme Visual Basic.
      • Et la taille totale de leurs paramètres fait respectivement 8 et 24 octets. Ce qui peut correspondre à 2 et 6 paramètres 32 bits...
    • Elles sont forcément dans une DLL, et la bibliothèque manquante est donc une bibliothèque statique d'importation et non une bibliothèque statique ordinaire.

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 90
    Points : 50
    Points
    50
    Par défaut
    ça fait un moment que je cherche et que je download/install/vide pas mal de chose.

    en théorie, il y a écrit que la version 3.4 contient les dll.
    Bon, j'ai trouvé ces fameuses dll (entre le début de mon message et maintenant ^^).
    Ceci dit, elle sont dans un zip et j'ai une petite question : est-il normal qu'il y ai a peu près une trentaine de fichier portant le même nom et la même extension, tous des dll dedans?

    bon, comme j'y suis un peu depuis ce matin, je crois que je vais faire une toute petite pause dans l'installation de cette extension pour mon petit dev ^^

    au fait, juste une question qui me parraissait si évidente que je ne l'ai pas posée : il est possible d'ajouter l'extension gd sur un dev installé sur une clé (pour des raisons qu'a la fac je ne peux pas le mettre sur mon compte).

    Ca marche bien quand il est inclu dans easyphp, mais je ne suis plus du tout sur qu'on puisse le faire indépendemment.

    Enfin, merci pour votre aide, je recommence ce soir (ou cet aprem ou demain).

    Merci beaucoup et a bientôt.


    P.S : je voulais une "petite bibliothèque simple" et je vais me retrouver avec une mastodonte que je connais sur le bout des doigts ou presque (au moins que je connais un peu disons ).
    Disons que si mon projet est validé, eh bien je pourrais commencer avec pas mal d'avance

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 90
    Points : 50
    Points
    50
    Par défaut
    bonjour, c'est encore moi
    après un petit week end de pause bien mérité (et après un 20 en algo. Second note de partiels que j'ai eut après le 19 de bureautique... mais non, je ne me la péte pas, mais comme l'année dernière je m'étais fait virer de médecine avec que des notes en dessous de la moyenne... faut dire qu'a l'époque, j'avais plus d'engouement pour la programmation que pour mes études de médecine^^), je suis de retour.


    Alors, je voulais vous poser une petite question : est-ce que vous avez une idée sur
    {

    1) quel taille fait ce que je cherche ? (la librairie statique).
    2) est-ce que vous pourriez essayer de voir si vous pouvez trouver cela dans la version 2.0.34, car elle est marquée comme présente (mais je comprendrais tout à fait que vous ne vouliez pas, car il faut quand même l'installer, et c'est assez long a télécharger et a instalelr sur dev).
    }

    Bref, je me remets au travail

    (en plus, je voudrai me faire un wall, et ça me casse trop les pieds de le faire avec des logiciels auxquels je ne comprend rien que je préfèrerai pouvoir le faire en C qui est beaucoup plus évident).


    Merci a tous.

Discussions similaires

  1. BDD sur réseau très très très lent...
    Par ericain dans le forum Access
    Réponses: 12
    Dernier message: 20/02/2015, 17h17
  2. traitement d'image de très grande taille
    Par issane dans le forum Images
    Réponses: 4
    Dernier message: 03/06/2010, 07h50
  3. Améliorer les performances - très (très) (très) grands datasets
    Par debdev dans le forum Administration et Installation
    Réponses: 6
    Dernier message: 08/01/2010, 16h46
  4. Démarrage trés, trés, trés difficile
    Par Cazaux-Moutou-Philippe dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 29/06/2008, 10h45
  5. Bibliothèque traitement d'image
    Par youp_db dans le forum Bibliothèques
    Réponses: 3
    Dernier message: 14/07/2007, 12h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo