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

Images Discussion :

Calculer le numéro du bloc dans une image


Sujet :

Images

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2012
    Messages : 33
    Points : 10
    Points
    10
    Par défaut Calculer le numéro du bloc dans une image
    Bonjour
    Je veux écrire une fonction qui calcule à chaque fois le numéro du bloc(qui a une taille réglable) dans une images de taille (nl x nc) j'ai écris le code suivant mais lorsque je choisi le denier pixel (nl,nc) je trouve un excès de blocs (111 au lie de 100 par exemple)
    m et n sont les coordonnées du point choisi dans ce bloc
    nblkh est le nombre de blocs horizontaux avant le bloc dont on voudrai connaitre son numéro.
    nblkav est le nombre de blocs horizontaux juste avant le bloc qui contient le point (m,n) c'est à dire sur la même ligne
    nblkmm est le nombre de blocs verticaux juste avant le bloc qui contient le point (m,n) c'est à dire sur la même colonne


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function [b]=block_num(m,n,mbsize,nc)
    a=(nc/mbsize);
    nblkh=floor(a);
    c=(m/mbsize);
    nblkav=floor(c);
    d=(n/mbsize);
    nblkmm=floor(d);
    b=(nblkh*nblkav)+ nblkmm + 1 ;
    end
    9a sera sympa si quelqu'un m'aidera.Merci d'avance

  2. #2
    Membre habitué
    Profil pro
    Doctorante
    Inscrit en
    Mai 2012
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Doctorante

    Informations forums :
    Inscription : Mai 2012
    Messages : 130
    Points : 197
    Points
    197
    Par défaut
    Salut,

    Est-ce que tu pourrais renvoyer ton code avec des noms de variables explicites (ce qui te permettrait toi aussi d'y voir plus clair).

    Est-ce que tu es sûr que ton image est divisible par un nombre entier de blocs ? Auquel cas, ça pourrait expliquer ton problème quand tu sélectionnes le "dernier" point de ton image...

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2012
    Messages : 33
    Points : 10
    Points
    10
    Par défaut
    Bonjour,
    C'est le code qui contient des variables explicite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function [b]=block_num(m,n,mbsize,nc)
    a=(nc/mbsize);
    blocs sur toute une ligne=floor(a);
    c=(m/mbsize);
    les blocs avant le bloc concerné(horizontaux)=floor(c);
    d=(n/mbsize);
    blocs juste avant le bloc concernés=floor(d);
    b=(blocs sur toute une ligne*les blocs avant le bloc concerné(horizontaux))+ blocs juste avant le bloc concernés+ 1 ;
    end
    je veux sélectionner un point de coordonnées (m,n) de l'image et connaitre à quel bloc ce point appartient .
    normalement lorsque je fixe mbSize à 3 j'obtiendrai 100 bloc et le point de coordonnées( 30,30) sera dans le 100éme bloc mais mon problème est que j’obtiens 111 comme résultats dans ce cas !!
    Et lorsque je choisi m ou n de tel façon qu'elle soit une multiple de 3 le code retourne un résultat bizarre.exemple (1,30) ou (6,6)...
    Et svp s''il existe une fonction MATLAB par défaut qui fait ce travail pourriez-vous me l'envoyer ? Merci d'avance

  4. #4
    Membre habitué
    Profil pro
    Doctorante
    Inscrit en
    Mai 2012
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Doctorante

    Informations forums :
    Inscription : Mai 2012
    Messages : 130
    Points : 197
    Points
    197
    Par défaut
    Essaye quelque chose dans le genre du pseudo-code ci-dessous :

    Si j'appelle (m,n) le point dont tu souhaites connaître le bloc et taille_bloc la longueur du bloc carré choisi.
    On cherche dans un premier temps les coordonnées du bloc sous la forme (x_bloc,y_bloc)

    x_bloc = ceil(n/taille_bloc);
    y_bloc = ceil(m/taille_bloc);

    Ensuite il y a une petite opération pour repasser en numérotation linéaire que je te laisse trouver.

    Fais bien attention à n'utiliser pour (m,n) que des points étant effectivement dans un bloc (pas des points du bord droit ou du bas si la taille de ton image n'est pas divisible par la taille du bloc)

  5. #5
    Membre éprouvé
    Avatar de ol9245
    Homme Profil pro
    Chercheur
    Inscrit en
    Avril 2007
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Avril 2007
    Messages : 985
    Points : 1 158
    Points
    1 158
    Billets dans le blog
    1
    Par défaut
    pour tous ces calculs il faut les faire en base zéro : tu commence par faire
    là tu peux faire toutes les divisions que tu veux par la taille de tes blocs.
    Tu récupères les numéros de blocs en base 0.
    si tu as besoin, tu ajoutes 1.
    "La vraie grandeur se mesure par la liberté que vous donnez aux autres, et non par votre capacité à les contraindre de faire ce que vous voulez." Larry Wall, concepteur de Perl.

Discussions similaires

  1. [Débutant] calcul distance euclidienne entre labels dans une image binaire
    Par angel_tn dans le forum Images
    Réponses: 8
    Dernier message: 04/05/2010, 18h12
  2. Calcul centroide de plusieurs tache dans une image
    Par astragoth dans le forum Calcul scientifique
    Réponses: 3
    Dernier message: 08/04/2010, 08h20
  3. calcul distance dans une image
    Par pro-naw dans le forum Images
    Réponses: 16
    Dernier message: 07/08/2009, 02h25
  4. Calcul Pose d'un point dans une image
    Par PrettyMan dans le forum Traitement d'images
    Réponses: 5
    Dernier message: 07/06/2009, 12h47
  5. Calcul du maximum dans une image 3D
    Par kmaniche dans le forum Images
    Réponses: 8
    Dernier message: 25/04/2009, 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