1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Tutorial Von CR2 zum jpg und das in Linux

Dieses Thema im Forum "Tutorials" wurde erstellt von escho, 26. November 2010.

  1. DerTrickreiche

    DerTrickreiche canikon Mitglied

    Registriert seit:
    7. März 2010
    Beiträge:
    110
    Zustimmungen:
    0
    Ich denke, daß das Problem bei Ubuntu zu suchen ist.

    Version ufraw: 0.17
    Version ufraw-batch: 0.16

    da werd ich wohl um das Selberbauen kaum herum kommen.

    Harry
     
  2. escho

    escho canikon Legende

    Registriert seit:
    25. Juli 2009
    Beiträge:
    4.688
    Zustimmungen:
    62
    Gibt´s bei Ubuntu kein Repo mit aktuellen Versionen?

    Edgar
     
  3. DerTrickreiche

    DerTrickreiche canikon Mitglied

    Registriert seit:
    7. März 2010
    Beiträge:
    110
    Zustimmungen:
    0
    Ich wüsste jetzt keins...aber ich werd mal forschen.

    Harry
     
  4. escho

    escho canikon Legende

    Registriert seit:
    25. Juli 2009
    Beiträge:
    4.688
    Zustimmungen:
    62
    Wenn du selber bauen willst, dann nimm aber die CVS

    Edgar
     
  5. DerTrickreiche

    DerTrickreiche canikon Mitglied

    Registriert seit:
    7. März 2010
    Beiträge:
    110
    Zustimmungen:
    0
    ..na logisch! ;)

    Harry
     
  6. escho

    escho canikon Legende

    Registriert seit:
    25. Juli 2009
    Beiträge:
    4.688
    Zustimmungen:
    62
    Ich hab jetzt mal angefangen, meine Negative zu digitalisieren, indem ich sie mit Hilfe einer selbstgebauten Vorrichtung abfotografiert habe. Die softwareseitige Decodierung und Wandlung zum Positiv lasse ich mein Script erledigen. Zu diesem Zweck habe ich eine neue Funktion eingebaut:

    Code:
    rohdecodierung_negativ ()
    {
    clear
    kdialog --msgbox "Bitte mit dem folgenden Bild den Weissabgleich festlegen"
    
    ufraw "$verzeichnis_weiss"/"$basisname"/*.CR2
    
    echo "Rohdecodierung wird gestartet"
    
    ufraw-batch --out-path="$ziel" --out-type=tif --create-id=no --out-depth=16 --exposure=0 --black-point=0 --interpolation=ahd --gamma=0.45 --linearity=0.10 --restore=lch --clip=film --saturation=1.0 --wavelet-denoising-threshold=0.0 --base-curve=linear --curve=linear --grayscale=none "$quelle"/*
    
    echo "Invertieren der Farben"
    echo
    
    for bild in "$ziel"/*
    do
          echo "$bild wird invertiert"
          mogrify -negate "$bild" &>/dev/null
    done
    }
    Aufgerufen wird das Ganze durch den neuen Menuepunkt 5:

    Code:
    auswahl_hauptmenue=`kdialog --caption "Hauptmenue" -geometry 400x300+400+400 --radiolist "Bitte einen Aufgabenbereich wählen" \
        1    "Bilder runterladen und sichten" off \
        2    "Roh-Decodierung und Weissabgleich" off \
        3    "Bearbeitung" off \
        5    "Negativ Roh-Decodierung" off`
    if [ $? != 0 ]
    then
        benutzerabbruch
    fi
    
    case $auswahl_hauptmenue in
        1)    download
            sichten ;;
    
        2)    verzeichnis_waehlen "$verzeichnis_cr2/*"
            verzeichnis_leer_cr2
            anzahl_rohbilder
            zielverzeichnis_anlegen
            
            ls "$verzeichnis_weiss"/"$basisname" | grep ".CR2" &>/dev/null
            if [ $? = 0 ]
            then
                  rohdecodierung_manual_wb
            else
                  rohdecodierung_camera_wb
            fi ;;
    
        3)    verzeichnis_waehlen "$verzeichnis_tif/*"
            bearbeiten ;;
    
        5)    verzeichnis_waehlen "$verzeichnis_cr2/*"
            verzeichnis_leer_cr2
            anzahl_rohbilder
            zielverzeichnis_anlegen
            rohdecodierung_negativ
    esac
    
    Was mache ich in dieser Funktion?

    Ich decodiere alle Bilder einen Negativfilms in einem Schwung mit ufraw-batch. Schwarzpunkt und Belichtung lasse ich diesmal nicht autiomatisch ermitteln, sondern zurre sie fest. Ansonsten ist nichts anders wie bei der Decodierung der normalen CR2s.

    Als zweiten Schritt lasse ich die Bilder mit imagemagick (mogrify) invertieren.

    Heraus kommen verhältnismässig flaue, da kontrastarme Bilder (je weniger alt die Filme sind, um so besser das Ergebnis). In einem zusätzlichen händischen Bearbeitungsschritt jage ich in digikam die automatische Tonwertkorrektur drüber und schärfe etwas nach, das Ganze natürlich auch im Stapelverarbeitungsmodus von digikam.

    Das Ergebnis ist für viele Bilder von ausreichender bis erstaunlich guter Qualität. Einige Negative liefern aber Falschfarben, was seperat korrigiert werden muß. Für meine Ansprüche taug´s auf jeden Fall.

    Das Weissabgleichbild (eines pro Film) verwende ich hier zur Entfernung der Maskierung des Negativs, wobei mir zusätzlich noch ein Blaufilter beim Fotografieren geholfen hat. Ich suche mir eine unbelichtete Stelle auf dem Film aus und verwende diese als Referenzpunkt für den Weissabgleich.

    Edgar
     
  7. escho

    escho canikon Legende

    Registriert seit:
    25. Juli 2009
    Beiträge:
    4.688
    Zustimmungen:
    62
    Ich muß leider feststellen, daß die Möglichkeiten, ein Tutorial sinnvoll zu bearbeiten, in einer Forensoftware begrenzt sind. Deshalb habe ich mich entschlossen, eine Zusammenfassung dieses Tutorials auf die Linupedia auszulagern ( Linupedia). Ich halte euch über den Fortschritt bei den geplanten Wiki-Artikeln dort auf dem Laufenden.

    Die Artikelserie habe ich genannt: Vom CR2 zum jpg (wie sonst :) )

    Den ersten Artikel habe ich in einer vorläufigen Rohfassung gerade online gestellt:

    Vom CR2 zum jpg, Teil 1: Die Übersicht

    Wer Interesse daran hat, der sei eingeladen, die Linupedia zu besuchen.

    Edgar
     
  8. escho

    escho canikon Legende

    Registriert seit:
    25. Juli 2009
    Beiträge:
    4.688
    Zustimmungen:
    62
    Teil 2 ist online:

    Vom CR2 zum jpg, Teil 2: Herunterladen der Rohbilder

    Hier wird das vollkommen automatisierte, vom Hotplugging-System beim Anschliessen der Kamera angestossene Herunterladen der Bilder beschrieben. Die Funktion der verwendeten Bashscripte wird genau erklärt. Und auch die udev-Regel wird durchleuchtet.

    :)

    Edgar
     
  9. DerTrickreiche

    DerTrickreiche canikon Mitglied

    Registriert seit:
    7. März 2010
    Beiträge:
    110
    Zustimmungen:
    0
    Hallo Edgar,
    da ist aber immer noch die "su-Krücke" in der udev-Regel...

    Gruss

    Harry
     
  10. escho

    escho canikon Legende

    Registriert seit:
    25. Juli 2009
    Beiträge:
    4.688
    Zustimmungen:
    62
    Ist noch drin, Harry. Ich hab´s probiert, wie du es empfohlen hast, also mit "edgar" und "users", da startet sich bei mir aber nichts. Ich hab noch nicht rausgefunden warum. Hast du ne Erklärung, was da sein könnte?

    Edgar
     
  11. DerTrickreiche

    DerTrickreiche canikon Mitglied

    Registriert seit:
    7. März 2010
    Beiträge:
    110
    Zustimmungen:
    0
    Hallo Edgar,
    ich nehm an, daß da die GID bzw. UID gefragt ist.
    Da Hotplug ja sehr früh wärend des Systemstart geladen wird stehn zu dem Zeitpunkt vermutlich die resolverlibs(pam) noch nicht zur Verügung.
    Probier mit UID/GID...sollte damit gehen.

    Gruss

    Harry
     
    #51 DerTrickreiche, 3. Januar 2011
    Zuletzt bearbeitet: 3. Januar 2011
  12. escho

    escho canikon Legende

    Registriert seit:
    25. Juli 2009
    Beiträge:
    4.688
    Zustimmungen:
    62
    Ich kanns erst später ausprobieren, glaub aber nicht, daß das daran liegt. Ich geb dann Bescheid, wenn ich es getestet hab.

    Edgar
     
  13. escho

    escho canikon Legende

    Registriert seit:
    25. Juli 2009
    Beiträge:
    4.688
    Zustimmungen:
    62
    Code:
    SUBSYSTEM=="usb", ACTION=="add", DEVPATH=="/devices/pci0000:00/0000:00:02.2/usb1/1-2/1-2:1.0", OWNER=="1000", GROUP=="100", MODE=="755", ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3145", RUN+="/home/edgar/Scripte/start_bilder_laden"
    Ich hab jetzt beim Owner die UID und bei der Gruppe die GID eingesetzt. Das Script startet trotzdem nicht.
    Lasse ich OWNER, GROUP und MODE weg, dann startet das Script, macht aber Dateien mit falscher (root) Benutzerkennung.

    Schleierhaft...

    Edgar
     
  14. DerTrickreiche

    DerTrickreiche canikon Mitglied

    Registriert seit:
    7. März 2010
    Beiträge:
    110
    Zustimmungen:
    0
    Hallo Edgar
    sobald ich Zeit finde, teste ich das selber mal und berichte dann.

    Gruss

    Harry
     
  15. DerTrickreiche

    DerTrickreiche canikon Mitglied

    Registriert seit:
    7. März 2010
    Beiträge:
    110
    Zustimmungen:
    0
    Sorry Edgar,
    ich hab dich auf eine falsche Fährte gelockt: USER/GROUP bestimmen bei den UDEV-Regeln nur, wem die erzeugten device-nodes im /dev Verzeichnis gehören.
    Laut UDEV-Doku werden die mit RUN gestarteten Programme im Kontext des Udev-Daemon ausgeführt, sind nicht mit einem Terminal verbunden und haben auch ihr eigenes Enviroment.
    Ich werd mich aber jetzt mal weiter Schlau machen, wie man sowas macht.("sicher" in das UserLand weitergibt)
    Vermutlich würde es bei deinen Scripten Sinn machen, die nach /usr/local/sbin zu verschieben, und mit entsprechend restriktiven Rechten zu versehen. Dann dürfen die ja als root laufen.
    Was mich aber an der UDEV-Regel viel mehr stört, ist, daß das ganze nur an dem zuerst festgelegten USB-Port funktioniert.
    Das ist ein weiterer Punkt, wo ich gerade forsche. Sobald ich da eine Lösung hab, las ich dir das zukommen.

    Gruss

    Harry
     
  16. escho

    escho canikon Legende

    Registriert seit:
    25. Juli 2009
    Beiträge:
    4.688
    Zustimmungen:
    62
    So, bin wieder da.

    Danke Harry für deine Recherchen.

    Ich weiß, daß mit USER/GROUP die Besitzverhältnisse der device-nodes festgelegt werden. Ich hatte allerdings gehofft, daß in Abhängigkeit dieser Besitzverhältnisse auch das "RUN-Script" gehandelt würde. Ist wohl nicht so, wie du richtig festgestellt hast.

    Die Festlegung auf den Port stört mich auch. Da ist mir allerdings noch nichts Besseres eingefallen.

    Der Scriptstart mit "su" stört mich in diesem Fall nicht wirklich. Solange ich unter meiner Benutzerkennung arbeite und nicht als root sollte da auch nichts passieren können.

    Meine Scripte möchte ich in meinem Benutzerverzeichnis lassen. Ich habe mir zwar schon mal überlegt, das alles nach /usr/irgendwohin zu verschieben, kann mich dazu aber nicht so richtig aufraffen.

    Edgar
     
  17. escho

    escho canikon Legende

    Registriert seit:
    25. Juli 2009
    Beiträge:
    4.688
    Zustimmungen:
    62
    Harry, ich hab grad noch einmal ein bißchen probiert mit "/bin/su edgar". Damit kann ich nur dasjenige ausführen, was ich als user "edgar" ausführen darf, auch wenn ich als root angemeldet bin. Vollkommen problemlos also, dieser Befehlsaufruf.

    Edgar
     
  18. DerTrickreiche

    DerTrickreiche canikon Mitglied

    Registriert seit:
    7. März 2010
    Beiträge:
    110
    Zustimmungen:
    0
    Ja natürlich, das geht.

    Gruss

    Harry
     
  19. escho

    escho canikon Legende

    Registriert seit:
    25. Juli 2009
    Beiträge:
    4.688
    Zustimmungen:
    62