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 :

Construire un arbre quartique à partir d'une image


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 3
    Par défaut Construire un arbre quartique à partir d'une image
    Bonjour,
    Je dois réaliser un projet qui consiste à faire un puzzle à partir d'une image 512x512 en niveau de gris.
    Pour cela je dois me servir d'un arbre quartique. Le problème c'est que je ne vois pas du tout comment créer un arbre quartique à partir d'une image ni même quelles structures utiliser. Je sais qu'il faudra une structure contenant 4 fils, car on va à chaque fois regarder si l'image est uniforme et si elle ne l'est pas la découper en 4 et faire de même sur chaque partie.
    J'ai pour l'instant utiliser uniquement des arbres binaires et les nœuds étaient indexés par une valeur. A quoi correspond la "valeur" ici, à un point de l'image ?
    Enfin je ne vois pas quand faire l'appel récursif sur les 4 fils. Dois-je parcourir tous les pixels un par un et si un pixel est différent faire les appels récursifs ?

    Merci d'avance

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Ton problème n'est pas super clair, mais voici ce que j'ai compris :
    init : noeud racine, la zone à parcourir représente l'image entière
    1. parcourir toute la zone et s'arrêter dès que la couleur courante est différente du premier pixel
    2. si toute la zone a été parcourue, alors positionner les coordonnées dans le noeud courant et arrêter la récursivité
    3. s'il y a une différence de couleur, alors couper la zone en 4 en créant 4 fils au noeud courant
    4. relancer l'algo sur les 4 fils


    Un noeud possède soit 4 fils, soit les coordonnées d'une zone : (x;y) du coin haut gauche et (largeur;hauteur).

    Les 4 fils représentent toujours une zone d'image coupée en 4 : haut gauche, haut droit, bas gauche, bas droit.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 3
    Par défaut
    Merci pour votre réponse.
    Oui désolé je me rend compte n'avoir pas bien formuler mon problème.
    Le but du projet est de créer un puzzle. Pour cela on charge d'abord une image .jpg, on créé alors un fichier qui contient la représentation de l'image par un arbre quartique. Dans ce fichier 0 code un nœud interne et 1 code une feuille le "1" est suivi d’un entier correspondant au niveau de gris. Ensuite pour créer le puzzle on mélange les nœuds de même niveau.

    Par rapport à ce que vous m'avez dit :
    J'ai créé une fonction qui parcourt chaque pixel de mon image et renvoie 1 si tous les pixels de mon image sont de la même couleur que le premier pixel et 0 sinon.
    J'appelle cette fonction dans une autre fonction, si 1 a été renvoyé j'alloue juste un nœud et si 0 a été renvoyé j'alloue un nœud et je fais un appel récursif sur les 4 fils.
    Mais le problème c'est que ma fonction d'allocation prend en paramètre une couleur mais j'ai besoin de stocker la couleur uniquement pour une feuille et pas pour un nœud interne. Comment faire ?
    J'espère que vous avez mieux compris mon énoncé si oui ai-je besoin de stocker les coordonnées de la zone dans le nœud courant comme vous l'avez dit et pourquoi ?

  4. #4
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Mais le problème c'est que ma fonction d'allocation prend en paramètre une couleur mais j'ai besoin de stocker la couleur uniquement pour une feuille et pas pour un nœud interne. Comment faire ?
    Le noeud n'a pas besoin de stocker la couleur du premier pixel. Ce premier pixel est utile uniquement pour la construction de l'arbre.
    J'espère que vous avez mieux compris mon énoncé si oui ai-je besoin de stocker les coordonnées de la zone dans le nœud courant comme vous l'avez dit et pourquoi ?
    Tout dépend de l'usage de l'arbre durant le traitement. Si tu n'en n'as pas besoin, alors ne le stocke pas ;-)
    La zone dans le noeud courant permet de retrouver immédiatement la portion de l'image décrite par un noeud.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

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

Discussions similaires

  1. tracer des traits .. (a partir d'une image)
    Par estampille dans le forum Applets
    Réponses: 1
    Dernier message: 08/08/2006, 13h02
  2. Lien internet a partir d'une image
    Par Furlaz dans le forum C++Builder
    Réponses: 28
    Dernier message: 15/06/2006, 13h57
  3. [C#] custom control à partir d'une image / alpha blending
    Par Cyberwan dans le forum Windows Forms
    Réponses: 5
    Dernier message: 13/11/2005, 21h59
  4. appel de fonction à partir d'une image activer/desactiver
    Par philippe123 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 23/08/2005, 16h26
  5. Réponses: 3
    Dernier message: 27/01/2005, 10h53

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