Beispiel 3

  • soweit danke...dann noch meine frage: ang. mein min wert ist 1 und mein max wert ist 10, dann muss ich ja von 1...10 auf 0...1 skalieren? und NICHT 65535


    Nein das passt meiner Meinung nach so - nach blacklevel ist dein hellster Punkt dann halt nicht 1 sondern 0,x - das ändert sich dann aber im Zuge des Weißabgleichs...

    Ines Janusch
    -------------------------
    EVC Tutorin 2014

  • Ich hätte eine Frage bezüglich Ausgabe - In einigen Funktionen (black_level zB) steht ja ausdrücklich nochmal als TODO drin, dass man die Ausgabe nicht vergessen soll, in anderen steht das zwar nicht, aber am Anfang der Funktion (in den comments, die den Input, Output etc beschreiben) steht eigentlich immer auch Ausgabe dabei.
    Also meine Frage, muss jede der Funktionen eine Ausgabe liefern, oder nur dann wenns explizit im TODO steht? Ist ja teilweise extrem mühsam wenn man nach jedem Aufruf das ganze Bild "printet" (dauert bei der Ausführung dann auch entsprechend lang)
    Wenn ja, was soll dann immer ausgegeben werden? Das was jeweils im .m File in den comments unter AUSGABE steht ?

  • Mit "Ausgabe" ist da der Rückgabewert gemeint. Also nicht Bild ausgeben, sondern entsprechende Variablen einfach setzen.
    Du kannst dich da sehr gut nach der Matlab Syntax im Allgemeinen richten:
    function [rückgabewert1 rückgabewert2...]= funktionsname(eingabewert1 eingabewert2 eingabewert2)
    wenn du eine eckige Klammer nach der Definition function hast, wo drinnen Rückgabeparameter stehen, musst du diese auch zurückgeben. Matlab wird aber eh die eine unglückliche Meldung liefern, wenn es einen Rückgabewert vermisst ;)

  • Könnte sich einer der Tutoren meinen evc_gamma_correction.m Code anschauen und mir Feedback geben, ob es so passt? Bin mir noch immer nicht sicher, ob ich die saturierte Gamma-Korrektur richtig implementiert habe...

  • Ich hätte eine Frage bezüglich Ausgabe - In einigen Funktionen (black_level zB) steht ja ausdrücklich nochmal als TODO drin, dass man die Ausgabe nicht vergessen soll, in anderen steht das zwar nicht, aber am Anfang der Funktion (in den comments, die den Input, Output etc beschreiben) steht eigentlich immer auch Ausgabe dabei.
    Also meine Frage, muss jede der Funktionen eine Ausgabe liefern, oder nur dann wenns explizit im TODO steht? Ist ja teilweise extrem mühsam wenn man nach jedem Aufruf das ganze Bild "printet" (dauert bei der Ausführung dann auch entsprechend lang)
    Wenn ja, was soll dann immer ausgegeben werden? Das was jeweils im .m File in den comments unter AUSGABE steht ?


    Hallo, damit ist nicht gemeint, dass du jedes mal das ganze Bild "printen" sollst oder so. Am besten nehm ich gleich das blacklevel-file als Bsp. Da steht ja, dass der neutrale Weißabgleich zurückgeliefert werden soll. Du sollst also einfach am Ende eine Variable "asShotNeutral = ...;" definieren, und das wars. Genauso bei result, da soll am eine des files einfach stehen "result = ...;". (Statt den "..." setzt du natürlich ein, was in der Angabe gefordert wird. Also einmal die Werte aus den ImageInfos lesen, das andere mal das skalierte/transformierte input-Bild. Aber das steht ja eh alles genau in der Angabe.) Du kannst natürlich ganz normal ein ";" am Zeilenende benutzen, sonst wird ja - wie du schon erwähnt hast - jedes mal die Matrix mit allen Werten ausgegeben, und das muss ja nicht sein...

    YEAH SCIENCE!
    ------------------
    EVC Tutor + Organisation SS 2016

  • Könnte sich einer der Tutoren meinen evc_gamma_correction.m Code anschauen und mir Feedback geben, ob es so passt? Bin mir noch immer nicht sicher, ob ich die saturierte Gamma-Korrektur richtig implementiert habe...


    Falls du noch Hilfe brauchst, kannst du mir deine Files schicken.

    Ines Janusch
    -------------------------
    EVC Tutorin 2014

  • Ich kann leider nicht zu den Sprechstunden gehen. Ich wollte fragen ob bei mir auch ein Tutor schnell über meinen Code schauen kann. Ich hab nach dem Demosaicing ganz komische Farben, weiß aber nicht ob es am Blacklevel oder dem (Bayer Pattern liegt. Ich hab meiner meinung nach alle Patterns ausprobiert und keines war eindeutig richtig. Ich werd einfach nicht schlau draus :-(

  • Ich kann leider nicht zu den Sprechstunden gehen. Ich wollte fragen ob bei mir auch ein Tutor schnell über meinen Code schauen kann. Ich hab nach dem Demosaicing ganz komische Farben, weiß aber nicht ob es am Blacklevel oder dem (Bayer Pattern liegt. Ich hab meiner meinung nach alle Patterns ausprobiert und keines war eindeutig richtig. Ich werd einfach nicht schlau draus :-(


    Du kannst mir deine Files mal schicken.

    Ines Janusch
    -------------------------
    EVC Tutorin 2014

  • Meine Frage ist vorhin glaube ich untergegengen:


    Wenn ich ein Hostogramm zeichne mit hist(x,y) bestimmt ja y das "Aussehen" der x-Achse. In unserem Fall geht sie von 0-maxIntenstät. Wenn die maximale Intensität aber zBsp bei 0.8 liegt, beinhaltet die x-Achse das Intervall [0,0.8]. Nun kann ich im Histogramm nicht bei 1 abschneiden.
    Ich habe versucht das zu umgehen indem ich im Intensitäten-Vektor am Ende einfach eine 1 hinzugefügt habe, aber am Histogramm ändert sich nichts. Kann es sein das Matlab Ausreißer einfach abschneidet?

  • Wie schaffe ich, dass das angezeigte Intervall meines Histogramms nicht kleiner als [0,1] wird?
    Ich habe zBsp bei Bild 0 nur Werte zwischen 0 und 0.7 und kann dann beim Histogrammclipping nich 1 zum Testen auswählen.


    Wenn du Werte im Bereich [0,1] haben willst, könntest du einfach am Ende von der gamma correction die Werte normalisieren (also von [0 0.7] zu [0 1]).


    Ich verstehe aber nicht ganz, warum deine Werte allgemein kleiner als 1 ist. Vlt. hast du vorher noch einen Fehler (ist aber nur eine Vermutung).

    Michael Beham
    Computer Vision WS 2012/13
    Einführung in Visual Computing SS2012, SS2013

  • Ich verstehe aber nicht ganz, warum deine Werte allgemein kleiner als 1 ist. Vlt. hast du vorher noch einen Fehler (ist aber nur eine Vermutung).


    Das kann es denk ich schon geben: es gibt Datensätze in denen der hellste Punkt nicht gleich 2^16-1 ist sondern kleiner - bei diesen Datensätzen hat man dann (vor dem Clipping) Werte im Intervall [0,<1].

    Ines Janusch
    -------------------------
    EVC Tutorin 2014

  • Wenn du Werte im Bereich [0,1] haben willst, könntest du einfach am Ende von der gamma correction die Werte normalisieren (also von [0 0.7] zu [0 1]).


    Ich verstehe aber nicht ganz, warum deine Werte allgemein kleiner als 1 ist. Vlt. hast du vorher noch einen Fehler (ist aber nur eine Vermutung).



    Ich glaube nicht, dass ich einen Fehler habe (Fingers crossed :)). Die Bilder bei denen die höchste Intensität über 1 liegt sehen eigentlich 1:1 so aus wie die Lösungsbilder. Nur bei 2 Testfällen liegt die Intensität unter 1 und ich kann das Histogrammclipping nur zwischen [0,maxValue] machen, da der Rest nicht angezeigt wird. Dann wird das Bild zu dunkel, da zB 0.7 neuer Weisswert wird.


    Wenn ich nach der Gammakorrektur normalisiere, bekomme ich dann nicht ein zu helles Bild (wenn das Intervall zwischen [0,<1] liegt)?

  • Ich glaube nicht, dass ich einen Fehler habe (Fingers crossed :)). Die Bilder bei denen die höchste Intensität über 1 liegt sehen eigentlich 1:1 so aus wie die Lösungsbilder. Nur bei 2 Testfällen liegt die Intensität unter 1 und ich kann das Histogrammclipping nur zwischen [0,maxValue] machen, da der Rest nicht angezeigt wird. Dann wird das Bild zu dunkel, da zB 0.7 neuer Weisswert wird.


    Wenn ich nach der Gammakorrektur normalisiere, bekomme ich dann nicht ein zu helles Bild (wenn das Intervall zwischen [0,<1] liegt)?


    Ja das denk ich auch, dass das Bild dann zu hell wird. Der bessere Weg ist denke ich, dass man die Histogrammdarstellung "zwingt" bis 1 anzuzeigen egal ob es Werte gibt oder nicht, ich weiß aber spontan auch nicht wie - muss mir das in Ruhe anschaun.

    Ines Janusch
    -------------------------
    EVC Tutorin 2014

  • Nur bei 2 Testfällen liegt die Intensität unter 1


    Ich habe es aufgefasst, dass du bei allen Bildern eine Intensität unter 1 hast. Daher schrieb ich auch, allgemein kleiner als 1 hast. Bei einzelnen kann ich mir das schon vorstellen.


    Wenn ich nach der Gammakorrektur normalisiere, bekomme ich dann nicht ein zu helles Bild (wenn das Intervall zwischen [0,<1] liegt)?


    Die schiebst oben "zum Testen". Daher der Hack...
    Aber du willst es mit der Referenzlösung vergleichen. Dann funktioniert das natürlihc nicht.
    Um allgemein immer 1 zu sehen ohne die Bins zu ändern müsste eigentlich die Bar() Funktion die Bestimmung der Axen erlauben. [1]
    Ich habs aber selbst nicht gemacht und hab jetzt leider keine Zeit mir das noch genauer anzusehen


    [1]http://www.mathworks.de/help/techdoc/ref/bar.html


    EDIT: Das mit dem Axen dürfte auch nicht gehen (man muss immer einen Wert vom Histogramm angeben
    Wie wäre es mit einer weißen Fläche zum Bild hinzufügen?

    Michael Beham
    Computer Vision WS 2012/13
    Einführung in Visual Computing SS2012, SS2013

    Edited 5 times, last by michaelllll ().

  • In Bsp. 1. Vorverarbeitung ist von einem aufgenommen Durchschnittswert des Rauschens die Rede. Muss ich das abziehen? Ich finde diesen Wert in der Ausgabe von imfinfo(...) nicht.


    EDIT: ach, das Rauschen wird durch den gespeicherten Schwarzwert repräsentiert... hab ich jetzt lang gebraucht um das zu übernasern...