kostenloser Webspace werbefrei: lima-city


Programmcode Funktionalität?

lima-cityForumProgrammiersprachenJava

  1. Autor dieses Themas

    cglabs

    Kostenloser Webspace von cglabs, auf Homepage erstellen warten

    cglabs hat kostenlosen Webspace.

    Hallo, ich habe hier einen Ausschnitt eines Bilderkennungsprogramms. Es handelt sich um eine Mathematische Formel, bei der ich den Zweck nicht herausfinden kann. Vielleicht kommt jemandem die Formel bekannt vor und er/sie kann mir sagen was genau hier berechnet wird.

    for(int x=0; x<bildBreite; x++){
    	for(int y=0; y<bildHoehe; y++ ){
    		pixel = bild.getPixelValue(x, y);
    		pixelSum += pixel;
    		pixelSquare = pixelSum * pixelSum;
    	}
    }
    
    pixelAnzahl = bildBreite *bildHoehe;
    pixelDurchschnitt= pixelSum / pixelAnzahl;
    pixelIrgendwas = Math.sqrt(pixelSquare - pixelAnzahl * pixelDurchschnitt * pixelDurchscnitt);


    Im Originalprogramm werden Variablen mit nur 2 Buchstaben und ohne Kommentar verwendet. Ich habe versucht nachzuvollziehen was hier passiert, aber kann beim besten Willen nicht sagen, was "pixelIrgendwas" macht.

    pixelDurchschnitt scheint die Durchschnittsfarbe pro Pixel im Bildausschnitt zu ermitteln, nur was macht diese Wurzelrechnung?

    Beitrag zuletzt geändert: 29.6.2010 8:36:24 von cglabs
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. kochmarkus

    Co-Admin Kostenloser Webspace von kochmarkus

    kochmarkus hat kostenlosen Webspace.

    Ich hätte als erstes mal auf das Quadratische Mittel (oder RMS im Englischen) getippt, aber das scheint nicht ganz zu passen: http://de.wikipedia.org/wiki/Quadratisches_Mittel

    Aber vielleicht hilft es dir ja trotzdem weiter.
  4. k***o

    Was gibt die folgende Funktion zurück?:
    bild.getPixelValue(x, y);

  5. koslo schrieb:
    Was gibt die folgende Funktion zurück?:
    bild.getPixelValue(x, y);




    Nach dem, was er oben geschrieben hat wird das der Farbwert des Pixels sein.

    LG cookies
  6. kochmarkus

    Co-Admin Kostenloser Webspace von kochmarkus

    kochmarkus hat kostenlosen Webspace.

    koslo schrieb:
    Was gibt die folgende Funktion zurück?:
    bild.getPixelValue(x, y);

    Da man in Bildverarbeitungsprogrammen oft mit Graustufenbildern arbeitet, denke ich die Funktion gibt die Graustufe des aktuellen Pixels zurück, meist im Beriche 0-255 für ganz schwarz bis ganz weiß.
  7. Also für mich sieht das nach einer verkorksten Varianz/Standardabweichungs-Berechnung aus.
    Das bedeutet, dass man dort versucht herauszubekommen, was die durchschnittliche Abweichung der einzelnen Farbwerte vom Durchschnittsfarbwert ist.
    Übrigens kann man ja mal mathematisch umformen und kommt dann auf:
    pixelIrgendwas = Math.sqrt(pixelSquare - pixelAnzahl * pixelDurchschnitt * pixelDurchscnitt)
                   = Math.sqrt(pixelSum * pixelSum - pixelAnzahl * pixelSum/pixelAnzahl *pixelSum/pixelAnzahl)
                   = Math.sqrt(pixelSum * pixelSum * ( 1 - 1/pixelAnzahl)
                   = Math.abs(pixelSum) * Math.sqrt(1 - 1/pixelAnzahl)
    Das kann man dann eventuell noch in eine andere Form bringen aber für mich macht das wenig Sinn:
                   = Math.abs(pixelSum) * Math.sqrt((pixelAnzahl - 1) / pixelAnzahl)


    PS: Falls es wirklich um die Standardabweichung geht, dann sollte die Formel so aussehen:
    varianz = 0;
    for(int x=0; x<bildBreite; x++){
    	for(int y=0; y<bildHoehe; y++ )
            {
                    pixel = bild.getPixelValue(x,y);
                    varianz += (pixel - pixelDurchschnitt) * (pixel - pixelDurchschnitt);
            }
    standardabweichung = Math.sqrt(varianz);

    Dieser Code stünde dann natürlich unterhalb der Zuweisungen an pixelDurchschnitt und co.
  8. Autor dieses Themas

    cglabs

    Kostenloser Webspace von cglabs, auf Homepage erstellen warten

    cglabs hat kostenlosen Webspace.

    @cookies, kochmarkus

    Ja das ist richtig. Es handelt sich um eine ImageJ Funktion, sie liefert einen Grauwert zwischen 0 und 255 zurück.

    @sektor

    Das könnte tatsächlich diese Varianz Formel sein. Das Programm an sich funktioniert eigentlich tadellos.
    Werde mich da etwas in das Thema Varianz einlesen, vielleicht bekomme ich eine Eingebung, warum der Entwickler das so gemacht hat. Werde auch mal die untere Form ausprobieren und die Ausgaben vergleichen.


    Vielen Dank, das bringt mich ganz gut weiter :)


    Beitrag zuletzt geändert: 29.6.2010 20:52:32 von cglabs
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!