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

Millie Discussion :

[Bug] Operateur FastBilateral


Sujet :

Millie

  1. #1
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut [Bug] Operateur FastBilateral
    Le filtre Bilateral provoque des trainées verticales, issues des premières lignes de l'image. Je suppose qu'il y a des données en trop dans le buffer des histogrammes (mauvaise init ?).

    Nom : bugfb.jpg
Affichages : 58
Taille : 32,0 Ko
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  2. #2
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Hum, faut que je regarde, le code d'origine est là :http://subversion.developpez.com/pro...lOperator.java

    Mais je cale pas pourquoi je suis en auteur.

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    //calcul des histogrammes pour la première ligne
    		for(int x=rayon;x<temp.getWidth()-rayon;x++) {
    			for(int j=0; j<2*rayon+1;j++)
    				for(int i=x-rayon;i<x+rayon+1;i++) {
    					histograms[x-rayon].incrementeValue((int) temp.getPixel(i, j, canal));
    				}
    		}

    Et l'histogramme :
    http://subversion.developpez.com/pro...Histogram.java

    Faut que je regarde quand j'aurais le temps
    Je ne répondrai à aucune question technique en privé

  3. #3
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Hum. Il semblerait qu'une ligne soit deux fois dans le buffer. Par exemple pour rayon=1, on a deux fois la ligne #2 dans le buffer.

    FastBilateralOperator.java
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    public void computeComponent(Image out, Image in, int canal) {
    	// (pour rayon=1 ...)
    		
    	//calcul des histogrammes pour la première ligne
    	for(int x=rayon;x<temp.getWidth()-rayon;x++) {
    		for(int j=0; j<2*rayon+1;j++) // j<3 --> ajout lignes #0, #1, #2
    			for(int i=x-rayon;i<x+rayon+1;i++) {
    				histograms[x-rayon].incrementeValue((int) temp.getPixel(i, j, canal));
    			}
    	}
    		
    	// Pour toutes les lignes visibles
    	for(int j=0;j<out.getHeight();j++) { 
    
    		// mise a jour des histogrammes
    		for(int i=0;i<out.getWidth();i++) {
    			int intensity = (int) temp.getPixel(i+rayon,j+rayon, canal);
    			// j=0 -> ajout ligne #2
    			addSubstract(histograms[i], temp, canal, i, j+2*rayon, i+2*rayon, j+2*rayon, 1);
    			if (j>0) addSubstract(histograms[i], temp, canal, i, j-1, i+2*rayon, j-1, -1);
    	
    	// (...)

    Mais je cale pas pourquoi je suis en auteur.
    Parce que, à la base, c'est le meme code que le FastMedian
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  4. #4
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Effectivement, il semblerait qu'il faille juste partir de 1 .

    for(int j=1;j<out.getHeight();j++) {

    Il semblait ne pas y avoir d'erreur dans le FastMedian
    Je ne répondrai à aucune question technique en privé

  5. #5
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par millie Voir le message
    Effectivement, il semblerait qu'il faille juste partir de 1 .

    for(int j=1;j<out.getHeight();j++) {

    Il semblait ne pas y avoir d'erreur dans le FastMedian
    J'aurais plutot retiré une ligne lors de l'init du buffer, et laissé tel quel la boucle de calcul. Histoire de ne pas avoir la première ligne non calculée dans l'image de sortie.

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    //calcul des histogrammes pour la première ligne
    for(int x=rayon;x<temp.getWidth()-rayon;x++) {
    	for(int j=0; j<2*rayon /*+1*/ ;j++)
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  6. #6
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Ah oui, aussi. J'étais pourtant persuadé d'avoir fait le test.
    Je ne répondrai à aucune question technique en privé

  7. #7
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Fait et releasé
    Je ne répondrai à aucune question technique en privé

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/03/2003, 16h37
  2. Bug new build ??
    Par rgarnier dans le forum XMLRAD
    Réponses: 4
    Dernier message: 31/01/2003, 10h30

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