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 ?).
![]()
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 ?).
![]()
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
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é
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); // (...)
Parce que, à la base, c'est le meme code que le FastMedianMais je cale pas pourquoi je suis en auteur.![]()
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
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é
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.
Ah oui, aussi. J'étais pourtant persuadé d'avoir fait le test.
Je ne répondrai à aucune question technique en privé
Fait et releasé
Je ne répondrai à aucune question technique en privé
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager