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

Qt Discussion :

Mais par où commencer?


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Novembre 2004
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 14
    Par défaut Mais par où commencer? [Qt - GDCM - Dicom images]
    Bonjour à tous!

    Je vous fais part de mon petit désagrément!

    Je dois réaliser un projet me permettant d'ouvrir des images et faire quelques calculs avec, que j'expliquerais par la suite.

    J'ai décidé de me tourner vers Qt, qui me semble une alternative correcte et un framework puissant.

    Seulement voilà, je dois tout d'abord ouvrir des images DICOM (format d'image médical). Ah, ça coince. Je ne sais pas comment transformer une image lue d'une autre librairie pour l'afficher dans un programme affiché par Qt.

    Ensuite, admettons que j'arrive à afficher cette image (mais admettons). J'ai simplement essayé en BMP (ça j'y arrive).

    Il s'agit ensuite de pouvoir, par exemple, afficher des outils comme ImageJ pour ceux qui connaissent. Par exemple je souhaiterais tracer un trait, puis récupérer le profil d'intensité des pixels (un graphique contenant l'intensité en fonction de la distance).

    Bon, pour tracer un trait, mon niveau de débutant en Qt me laisse sans voix... Même en réussissant à récupérer la position de la souris, je ne vois vraiment pas comment faire...

    La seule partie où j'ai réussi à me débrouiller, c'est afficher les données de profil d'intensité (obtenue par ImageJ) grâce à QWT. Ouf. Tout de même.

    Et là comme je me sentais seul, j'ai décidé de venir poster!

    Avez-vous des suggestions?

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 774
    Par défaut
    Salut,

    Alors première question : est ce que ImageJ ( que je ne connais pas du tout) contient tous les outils graphiques que tu désires ? Car si c'est le cas, recoder un outil similaire et en plus te taper l'algorithme de conversion DICOM -> JPEG (ou equivalent) me semble un perte de temps. Le mieux serait d'appeler ImageJ à partir de ton application Qt, puis d'interagir avec pour récupérer les données qui t'intéressent, puis les traiter avec Qt.

    Sinon, pour convertir les DICOM en un autre format, il doit bien exister des algos ou des petits softs de conversion. Tu pourrais également les appeler depuis ton appli Qt, puis afficher l'image convertie ( au lieu d'inclue l'algo en dur dans ton appli ).

    Sinon, pour dessiner sur un QWidget, ce n'est pas forcément très intuitif au départ, mais c'est très puissant. La classe principale est QPainter, et tu as un petit exemple dans la FAQ.

    Voila quelques idées en vrac,

    Bonne chance

    G.

  3. #3
    Membre habitué
    Inscrit en
    Novembre 2004
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 14
    Par défaut
    Salut Gulish!

    Merci pour cette petite réponse qui permet de reprendre un peu de poil de la bête (eh oui les projets autonomes comme ça, les hauts et les bas ça vient vite...).

    J'avais effectivement pensé à un outil de conversion et effectivement il semble plus judicieux d'externaliser la fonction. Moins de perte de temps comme tu dis, et grâce à la modularité des applications POO il est possible de rajouter ça plus tard...

    Reste à trouver un format de niveaux de gris contenant la même profondeur (16-bits il me semble) sans pertes.

    Je vais à nouveau jeter un oeil à QPainter. Il est donc possible, au mouvement, clic et relâchement de la souris uniquement dans mon widget image, de récupérer les coordonnées par rapport à l'image et d'y dessiner le segment en temps réel? Et ensuite, par exemple si je veux à nouveau reprendre ce segment et modifier ça taille en temps réel?

    Après, une fois les coordonnées récupérées, l'intensité de signal est une autre affaire...

  4. #4
    Membre expérimenté

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2006
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 281
    Par défaut
    Bonjour,

    Concernant les fonctions de détourage, de dessin de profil, de tous ce qui touche à la partie "interface", Qt sera parfait.

    Pour accéder au informations de type Dicom, il existe un projet qui est pas mal : gdcm (http://apps.sourceforge.net/mediawik...itle=Main_Page)

    Pour le traitement, je te conseille la chose suivante :

    1. Qt ne va pas gérer directement des images de 16bits de niveau de gris, même en utilisant le tiff. Il va donc falloir récupérer les données à partir du Dicom sous forme de tableau deux dimensions d'unsigned short au minimum.
    2. Utiliser la classe QImage qui te permettra d'accéder à un format d'image 8bits et pixel par pixel pour créer une image affichable.
    3. Utiliser cette image pour récupérer les coordonnées de pixels à traiter.
    4. Faire les traitements sur le tableau d'unsigned short.


    J'ai pas mal bosser dans l'imagerie médicale, et il vrai que ImageJ est dur à remplacer, mais reste quand même à moderniser...

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 774
    Par défaut
    Il est donc possible, au mouvement, clic et relâchement de la souris uniquement dans mon widget image, de récupérer les coordonnées par rapport à l'image et d'y dessiner le segment en temps réel? Et ensuite, par exemple si je veux à nouveau reprendre ce segment et modifier ça taille en temps réel?
    Je réponds oui à tes 2 questions, et cela sans trop de travail.

    Concernant la conversion d'image, je ne peux pas vraiment t'aider. Apres je pense que le mieux, comme l'a dit LeGars, sera de faire correspondre tes coordonnées récupérées via Qt aux valeurs réelles sur ton image DICOM (pour éviter l'éventuelle perte d'info durant la conversion).

    Courage !

    G.

  6. #6
    Membre habitué
    Inscrit en
    Novembre 2004
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 14
    Par défaut
    Merci à vous deux pour vos réponses qui m'éclairent

    Effectivement sans trop le vouloir j'avais déjà pour mon test en BMP un QPixmap pour l'affichage et un QImage pour le traitement. Du moins j'avais prévu...

    Je vais donc procéder de cette façon mais en essayant de faire venir les données dicom pour le traitement!

    LeGars, je vais regarder attentivement le lien que tu m'as passé, ça m'a l'air intéressant! Effectivement ImageJ c'est le pied pour tester toutes les procédures dont j'avais besoin. Cependant pour ensuite créer le programme qui réponde à mes besoins, sans en faire un petit plugin, là ça devenait... plus difficile. Après c'est subjectif .

    ---

    Une autre question maintenant correspondant à un signal. En effet je dois avoir une dérivée d'un profil d'intensité qui me donne une courbe sous forme de trapèze. Cependant à cause de l'intensité d'origine, bruitée, la dérivée l'est aussi (et j'évite de trop tricher sur le lissage de l'intensité d'origine), on m'a conseillé d'appliquer un modèle trapézoïdal sur cette dérivée censée être un trapèze.

    Quelqu'un a-t-il des notions sur ce sujet? Réussir à appliquer un modèle sur lequel ensuite baser mon calcul (largeur à mi-hauteur)...

    Merci d'avance

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Divers] Par où commencer ?
    Par calogerogigante dans le forum Cobol
    Réponses: 6
    Dernier message: 03/03/2014, 10h22
  2. Une galelrie facile mais par ou commencer?
    Par stivo59 dans le forum ActionScript 3
    Réponses: 0
    Dernier message: 06/07/2010, 13h31
  3. mais par ou commencer ?
    Par kelepoc dans le forum C++
    Réponses: 12
    Dernier message: 21/06/2006, 17h43
  4. Par où commence un site
    Par stujava dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 31/08/2005, 09h33

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