Stapelverarbeitung: RAW Konvertierung

omi

Mitglied
Dabei seit
26.01.05
Beiträge
170
Standort
München
Trophäen
{**!}*!!!
#41
AW: Stapelverarbeitung: RAW Konvertierung

Hallo!

zur Exif-Frage:

1. Einfachste Lösung:
Die Kamera arbeitet im Raw+jpg-Modus, d.h. es wird zu jedem Raw gleichzeiting ein jpg erzeugt. Letzteres darf qualitativ beliebig schlecht sein. Hauptsache die Exifs sind drin. Wichtig ist, dass das Begleit-jpg immer hübsch neben der Raw-Datei liegt. In diesem Fall enthält die von meinem Skript erzeugte jpg-Datei die Exifs ohne weiteres Zutun. (Kuni erwähnte es bereits. Ich habe mich gerade nochmal davon überzeugt). Die Tif-Datei wird dabei exiflos bleiben, leider.

All das gilt latürnich auch, wenn die Begleit-jpg-Datei nicht von der Kamera, sondern von einem x-beliebigen anderen Raw-Konverter erzeugt wurde.

2. Der Vorschlag, dcraw zur Extraktion der Exifs zu verwenden, bringt -- glaube ich -- nicht viel. Erstens kann dcraw nur die wichtigsten Exif-Tags (MakerNotes sind damit mit Sicherheit futsch), und zweitens habe ich nicht in der Hand, wie dcraw von FF angesprochen wird.

3. Der Vorschlag mit exiftool könnte ganz gut funktionieren, vorausgesetzt man ist willens andere Software neben FF zu dulden ;) Ich habe mein Skript mal testweise verändert. Mit exiftool werden die Exifs aus der Raw-Datei sowohl in das jpg, als auch das tif-File geschrieben. Wer Lust und Zeit hat, darf gerne mal probieren.

Wichtig: Pfad zu exiftool anpassen. (Auf doppelte Backslashes achten.)

Code:
//FFSubmenu=RAW
//FFName=Raw: Exif-schonende Umwandlung nach tif und jpg mit "Xe847"

//***************************************************
// Pfad zum exiftool: alle Backslashes müssen doppelt sein!!!!
//***************************************************
var exiftool = "\"C:\\Dokumente und Einstellungen\\mihatsch\\Desktop\\exiftool.exe\"";

//***************************************************
// Namensanhängsel für die zu speichernden Dateien
// Standardeinstellung: "Bild.raw" wird als "Bild-ff.tif" und "Bild-ff.jpg" 
// gespeichert
//***************************************************

// Namenszusatz für die zu speichernde JPG-Datei
var jpgNamenszusatz = "-ff";

// Namenszusatz für die zu speichernde TIFF-Datei
var tifNamenszusatz = "-ff";


//***************************************************
// Ab hier geht es los ....

var fso = new ActiveXObject("Scripting.FileSystemObject"); 
var wsh = new ActiveXObject("WScript.Shell");

// Schleife über alle markierten Bilder   
var imagenum = FF_GetImageCount();
for(var i = 0; i<imagenum ;i++) {
   var path = FF_GetImageName(i);
   var splitPath = SplitPath(path);
      
   // Überspringen, was nicht nach Raw aussieht
   if(splitPath.ext.toLowerCase() == ".jpg" || 
      splitPath.ext.toLowerCase() == ".bmp" || 
      splitPath.ext.toLowerCase() == ".png")  {
          continue;
   }
      
   // Bildname im Fortschrittsbalken anzeigen
   FF_SetProgressText(i, imagenum, splitPath.file);

   //***************************************************
   // Raw-Bild laden und konvertieren.
   //    
   //  Der zweite Parameter ist eine Summe von
   //     1 = Halbe Größe
   //     2 = autom. Weißabgleich
   //     4 = Kameraweißabgleich
   //     8 = RGGB als 4 Farbe interpretieren
   //    16 = Bild nach links drehen
   //    32 = Bild nach rechts drehen
   //    64 = Rauschunterdrückung 
   //   128 = Stuckpixelbeseitigung
   //
   //   Bsp: "Automatischer Weißabgleich" + "RGGB als 4 Farbe interpretieren"
   //          + "Rauschunterdrückung" ->
   //         FF_LoadRawImage(path, 2 + 8 + 64,    2.0, 4.0, "")
   //
   //   Die Parameter 3 und 4 sind nur bei aktiver Rauschunterdrückung (64) von Bedeutung (domain + range)
   //   Der letzte Parameter ist nur bei aktiver Stuckpixelbeseitigung (128) von Bedeutung (stuckfile)
   //
   //   Vor V2.84 B42 gab es die Zusatzparameter noch nicht: FF_LoadRawImage(path, 4)
   //
   // Standardmäßig wird hier nur der Kameraweißabgleich verwendet: 
   //***************************************************
   if (!FF_LoadRawImage(path, 4, 2.0, 4.0, "")) {
       continue; // Raw-Konversion ist fehlgeschlagen, gehe zum nächsten Bild
   }
   //***************************************************
      

   //***************************************************
   // Bearbeitungen im 16-Bit-Modus
   //  standardmäßig wird hier Xe847 aufgerufen
   //***** Ende der Raw-Konversion **************************

   // Automatische Bildoptimierung mit Xe47
   FF_Xe847Enhanced16(100, 100, 100, 100, 100, 0, 0, 0);

   // Alternative 1: "Perfectly Clear"
   //FF_PerfectlyClear16(true, true, 2, true, 95, true, 100, true, 100, true); 

   // Alternative 2: Kontrastautomatik
   //FF_AutoContrast16();

   // Alternative 3: Variante "Kuni"
   // hier kommt eine leichte Aufhellung, die ich für meine Canon-CR2-Bilder 
   // brauche, um die Helligkeit eines Vergleichs-JPG zu erreichen
   // FF_BrightUpDown16(595);
   // Der S-Kontrast16 ist nötig, damit die Kamera-Kontrasteinstellung, 
   // die ich auf besonders gering gestellt habe, ein wenig kompensiert wird
   // FF_SContrast16(0.65);

   //***** Ende der 16-Bit-Bearbeitung************************
	  

   // Bild mit den obigen Korrekturen mit Namenszusatz als 16bit-Tiff speichern
   var outTif = splitPath.dir + splitPath.file + tifNamenszusatz + ".tif"
   FF_SaveImage16(outTif);

   // Exifs aus der Raw-Datei lesen und in die tif-Datei schreiben
   wsh.Run(exiftool + " -TagsFromFile \"" + path + "\" \"" + outTif + "\"", 4, true);

   // Bild nach 8bit konvertieren
   FF_Convert16();


   //***************************************************
   // Bearbeitungen im 8-Bit-Modus
   //   beispielsweise könnte man hier Schärfen.
   //***************************************************

   // volle Pulle Kanten schärfen
   FF_SmartSharp(192, 16); 

   // Alternativ: Mittelstarkes 3D-Schärfen
   // FF_3DSharp(70, 14); 

   // Auch 'ne Option: volle Pulle Schärfen durch Verformen
   // FF_GeoSharp(512) ; 

   //***** Ende der 8-Bit-Bearbeitung*************************
            
   // hier entsteht der neue Dateiname für das JPG
   var outName = splitPath.dir + splitPath.file + jpgNamenszusatz + ".jpg"; 
      
   // jetzt wird das JPG gespeichert
   FF_SaveImage(outName, 97);

   // Exifs aus der Raw-Datei lesen und in die jpg-Datei schreiben
   wsh.Run(exiftool + " -TagsFromFile \"" + path + "\" \"" + outName + "\"", 4, true);


   // Fortschritt melden 
   FF_SetProgress(i+1, imagenum)
}

// Zerteilt einen Bild-Dateinamen in sein Pfadbestandteile
function SplitPath(path) {
    var fso = new ActiveXObject("Scripting.FileSystemObject");
    var    result = new Object();
    result.dir = fso.GetParentFolderName(path) + "\\";
    result.file = fso.GetBaseName(path);
    result.ext = "." + fso.GetExtensionName(path);
    return result;
    }
 
Zuletzt bearbeitet:

Joghi

Mitglied
Dabei seit
21.11.05
Beiträge
499
Standort
Oberschwaben
Trophäen
{**}***!!
#42
AW: Stapelverarbeitung: RAW Konvertierung

Guten Abend Oliver,

normalerweise drücke ich mich kultivierter aus, aber diesmal bleibt mir nur noch: ES IST SOO G....L ! Funktioniert bei mir auf Anhieb. GANZ HEISSEN DANK nochmal!

gute nacht
Joghi
 

Walter-46

Mitglied
Dabei seit
08.10.06
Beiträge
1.744
Standort
Meppen
Trophäen
*****!!! {**!!!}
#44
AW: Stapelverarbeitung: RAW Konvertierung

Hallo zusammen,

eine bescheidene Nachfrage: Mit der Anweisung FF_LoadRAWImage(Path, 4+64, 2.0,4.0,"") wird ja die DCRAW-seitige Entrauschung aktiviert. Hat schon mal jemand mit den beiden Parametern experimentiert und kann über Erfahrungen berichten?

Beim Einzelbild-RAW-Import in FF wird ja wohl unter 'Domain' und 'Range' die von David Coffin empfohlene Startsequenz 2.0 und 4.0 vorgegeben, die in gleicher Wertigkeit im von mir genannten Beispiel eingetragen ist.

Es soll ein 'kantenschonender Rauschfilter' sein, mit dem ersteren Wert wird wohl der Pixelwert beschrieben, mit dem letzteren eine Farbangabe nach CIE Lab. Kann man daraus irgendwas Greifbares, Bekanntes ableiten?

Der Pixelwert wäre nach meinem Verständnis die Entfernung zwischen zwei Pixeln, d. h. Wirkungsweise wie ein Luminanzrauschfilter?

Und die Wiki der CIE Lab - Erklärungen ist für mich beim einmaligen lesen nicht mit dem Wert 4.0 in Verbindung zu bringen. Vielleicht dürfte man diesen Wert ganz primitiv mit einer Art 'Farbrauschunterdrückung' in Zusammenhang bringen?

Bin ich völlig auf dem Holzweg - und/oder wisst Ihr mehr?

Viele Grüße von
Walter
 
Zuletzt bearbeitet:

omi

Mitglied
Dabei seit
26.01.05
Beiträge
170
Standort
München
Trophäen
{**!}*!!!
#45
AW: Stapelverarbeitung: RAW Konvertierung

Hallo,
ich kann auch mit keiner Antwort dienen :(
 

Walter-46

Mitglied
Dabei seit
08.10.06
Beiträge
1.744
Standort
Meppen
Trophäen
*****!!! {**!!!}
#46
AW: Stapelverarbeitung: RAW Konvertierung

Danke Omi,

ich frage ja nur deshalb, weil in meinem RAW-Workflow die Entrauschung (so denn notwendig) an erster Stelle, noch im 12bit/16bit-Bereich steht. Ausgehend von einem dann möglichst sauberen Material nehme ich die bildfehlerverstärkenden Maßnahmen vor, wie z. B. Helligkeit, Kontrast, Sättigung usw.

Insbesondere bei der Stapelverarbeitung von RAWs mit mittler und hoher ISO-Speed halte ich diese Reihenfolge für unumgänglich. Wenn erstmal das vorhandene Rauschen in der EBV verstärkt wird, um dann im 8-Bit-Modus wieder entfernt zu werden, sehe ich darin den weniger erfolgreichen Weg.

Wenn ich hier einen Denkfehler begehe, dann wiedersprecht mir bitte.

Abendliche Grüße

Walter
 
Zuletzt bearbeitet:
Dabei seit
07.03.05
Beiträge
108
#47
AW: Stapelverarbeitung: RAW Konvertierung

Hallo omi

Dein Script läuft und läuft und läuft.;D Die RAW-Umwandlung macht richtig Spaß damit.
Jetzt würde ich gerne mal die aktuellste dcraw Version 8.68 ausprobieren, die du hier im Forum schonmal angesprochen hast.
Kann ich und wenn ja wie dein Script an den aktuellen dcraw anpassen um z.B. die neue Entrauschung zu nutzen?
Das wäre ja eine gute Möglichkeit bis JKS FixFoto angepasst hat um die neue Version zu nutzen.

Gruß
Dirk
 

omi

Mitglied
Dabei seit
26.01.05
Beiträge
170
Standort
München
Trophäen
{**!}*!!!
#48
AW: Stapelverarbeitung: RAW Konvertierung

Hallo Dirk, das Skript läuft auch mit V2.84 B89 (dcraw 8.69) noch. Das einzige was nicht mehr präzise stimmt, sind die Kommentare und der Wertebereich der Parameter.

Die neue Rauschunterdrückung mit Schwellwert "50" wir wie folgt angesprochen (hier in Kombination mit Kameraweißabgleich):

Code:
   if (!FF_LoadRawImage(path, 4+64, 50, 0, "")) {
       continue; // Raw-Konversion ist fehlgeschlagen, gehe zum nächsten Bild
   }
Du siehst, außer dem Wertebereich der Parameter

früher: 2 (domain), 4 (range)
jetzt: 50 (stärke), 0 (unbenutzt)

hat sich nix getan.
 

omi

Mitglied
Dabei seit
26.01.05
Beiträge
170
Standort
München
Trophäen
{**!}*!!!
#49
AW: Stapelverarbeitung: RAW Konvertierung

Ich habe mein ursprüngliches Skript an die neue Beta angepasst.
(Die Anpassung der Exiftool-Variante überlasse ich dem geneigten Leser :)

Achtung benötigt mindestens V2.84 B89 (dcraw 8.69) und höchstens V2.85 B21:
Code:
//FFSubmenu=RAW
//FFName=Raw: Umwandlung nach tif und jpg mit "Xe847"

//***************************************************
// Namensanhängsel für die zu speichernden Dateien
// Standardeinstellung: "Bild.raw" wird als "Bild-ff.tif" und "Bild-ff.jpg" gespeichert
//***************************************************

// Namenszusatz für die zu speichernde JPG-Datei
var jpgNamenszusatz = "-ff";

// Namenszusatz für die zu speichernde TIFF-Datei
var tifNamenszusatz = "-ff";



var fso = new ActiveXObject("Scripting.FileSystemObject"); 

// Schleife über alle markierten Bilder   
var imagenum = FF_GetImageCount();
for(var i = 0; i<imagenum ;i++) {
   var path = FF_GetImageName(i);
   var splitPath = SplitPath(path);
      
   // Überspringen, was nicht nach Raw aussieht
   if(splitPath.ext.toLowerCase() == ".jpg" || 
      splitPath.ext.toLowerCase() == ".bmp" || 
      splitPath.ext.toLowerCase() == ".png")  {
          continue;
   }
      
   // Bildname im Fortschrittsbalken anzeigen
   FF_SetProgressText(i, imagenum, splitPath.file);

   //***************************************************
   // Raw-Bild laden und konvertieren.
   //    
   //  Der zweite Parameter ist eine Summe von
   //     1 = Halbe Größe
   //     2 = autom. Weißabgleich
   //     4 = Kameraweißabgleich
   //     8 = RGGB als 4 Farbe interpretieren
   //    16 = Bild nach links drehen
   //    32 = Bild nach rechts drehen
   //    64 = Rauschunterdrückung 
   //   128 = Stuckpixelbeseitigung
   //
   //   Bsp: "Automatischer Weißabgleich" + "RGGB als 4 Farbe interpretieren"
   //          + "Rauschunterdrückung" ->
   //         FF_LoadRawImage(path, 2 + 8 + 64,    50.0, 0, "")
   //
   //   Der dritte Parameter ist nur bei aktiver Rauschunterdrückung (64) von Bedeutung (Stärke der Rauschunterdrückung / "threshold for wavelet denoising")
   //   Der vierte Parameter ist momentan unbenutzt.
   //   Der letzte Parameter ist nur bei aktiver Stuckpixelbeseitigung (128) von Bedeutung (stuckfile)
   //
   //   Vor V2.84 B42 gab es die Zusatzparameter noch nicht: FF_LoadRawImage(path, 4)
   //
   // Standardmäßig wird hier nur der Kameraweißabgleich verwendet: 
   //***************************************************
   if (!FF_LoadRawImage(path, 4, 50.0, 0, "")) {
       continue; // Raw-Konversion ist fehlgeschlagen, gehe zum nächsten Bild
   }
   //***************************************************
      

   //***************************************************
   // Bearbeitungen im 16-Bit-Modus
   //  standardmäßig wird hier Xe847 aufgerufen
   //***** Ende der Raw-Konversion **************************

   // Automatische Bildoptimierung mit Xe47
   FF_Xe847Enhanced16(100, 100, 100, 100, 100, 0, 0, 0);

   // Alternative 1: "Perfectly Clear"
   //FF_PerfectlyClear16(true, true, 2, true, 95, true, 100, true, 100, true); 

   // Alternative 2: Kontrastautomatik
   //FF_AutoContrast16();

   // Alternative 3: Variante "Kuni"
   // hier kommt eine leichte Aufhellung, die ich für meine Canon-CR2-Bilder 
   // brauche, um die Helligkeit eines Vergleichs-JPG zu erreichen
   // FF_BrightUpDown16(595);
   // Der S-Kontrast16 ist nötig, damit die Kamera-Kontrasteinstellung, 
   // die ich auf besonders gering gestellt habe, ein wenig kompensiert wird
   // FF_SContrast16(0.65);

   //***** Ende der 16-Bit-Bearbeitung************************
	  

   // Bild mit den obigen Korrekturen mit Namenszusatz als 16bit-Tiff speichern
   FF_SaveImage16(splitPath.dir + splitPath.file + tifNamenszusatz + ".tif");

   // Bild nach 8bit konvertieren
   FF_Convert16();


   //***************************************************
   // Bearbeitungen im 8-Bit-Modus
   //   beispielsweise könnte man hier Schärfen.
   //***************************************************

   // volle Pulle Kanten schärfen
   FF_SmartSharp(192, 16); 

   // Alternativ: Mittelstarkes 3D-Schärfen
   // FF_3DSharp(70, 14); 

   // Auch 'ne Option: volle Pulle Schärfen durch Verformen
   // FF_GeoSharp(512) ; 

   //***** Ende der 8-Bit-Bearbeitung*************************
            
   // hier entsteht der neue Dateiname für das JPG
   var outName = splitPath.dir + splitPath.file + jpgNamenszusatz + ".jpg"; 
      
   // jetzt wird das JPG gespeichert
   FF_SaveImage(outName, 97);

   // Fortschritt melden 
   FF_SetProgress(i+1, imagenum)
}

// Zerteilt einen Bild-Dateinamen in sein Pfadbestandteile
function SplitPath(path) {
    var fso = new ActiveXObject("Scripting.FileSystemObject");
    var    result = new Object();
    result.dir = fso.GetParentFolderName(path) + "\\";
    result.file = fso.GetBaseName(path);
    result.ext = "." + fso.GetExtensionName(path);
    return result;
    }
Micha, darfst gerne in den Skriptbereich hochladen.
 
Zuletzt bearbeitet:
Dabei seit
07.03.05
Beiträge
108
#50
AW: Stapelverarbeitung: RAW Konvertierung

Hallo omi

Super, vielen Dank.
Das fluppt jetzt richtig mit dem neuen dcraw und deinem Script.

Gruß
Dirk
 

Jogi

Mitglied
Dabei seit
07.04.07
Beiträge
4
Standort
Rellingen
#51
AW: Stapelverarbeitung: RAW Konvertierung

Hallo,
ich bin neu hier und hab mich mal mit dem wandeln von RAW(NEF) in jpg versucht.
dabei hab ich ein problem mit dem Script.
bei mir kommt immer die Meldung:

Falsche Anzahl an Argumenten oder ungültige Eigenschaftszuweisung
Src: Laufzeitfehler in Microsoft JScript
Line:60 Error:0 Scode:800a01c2
if (!FF_LoadRawImage(path, 4, 50.0, 0, "")) {

kann mir jemand helfen?

Gruß Jogi
 

m.s

FF-Team
Mitarbeiter
Dabei seit
19.09.02
Beiträge
11.275
#52
AW: Stapelverarbeitung: RAW Konvertierung

Betaversion installieren, danach nochmal probieren.
 

Jogi

Mitglied
Dabei seit
07.04.07
Beiträge
4
Standort
Rellingen
#53
AW: Stapelverarbeitung: RAW Konvertierung

Moin,
du schreibst: Betaversion installieren, danach nochmal probieren.
welche Betaversion und wovon?

Gruss Jogi
 

hhp

Mitglied
Dabei seit
31.03.07
Beiträge
16
Standort
S-H
#55
AW: Stapelverarbeitung: RAW Konvertierung

Micha, du hast ein gutes Gedächtnis. Respekt.

Ich konvertiere meine Raws mit folgendem Skript:
etc....................

Das ist keine Komfort-Variante. Tut aber für meinen Zweck genau das Richtige.
Moin Oliver,

für meinen Zweck auch, obwohl bei einem größeren Stapel bei mir recht langsam (30 Bilder ca. 7 Min.).

Aber damit komme selbst ich, als Grufti und auch noch "blutiger" Anfänger gut zurecht.

Vielen Dank dafür. Äusserst hilfreich!

Oliver, geht das vielleicht schneller, wenn ich XE847ProPlus installiere??

Herzliche Grüsse
phil (in Bescheidenheit immer klein geschrieben)

PS: Ich nutze die Gelegenheit, um einmal zu erwähnen, dass die Hilfsbereitschaft hier grandios ist. Hinzu kommt auch noch ein angenehmer Umgangston, wie ich ihn in anderen Foren nur selten gefunden habe, selbst nicht in einem Forum, in welchem man das noch am ehesten hätte erwarten können, einem Forum in dem sich die Eigner höchstwertiger, ja berühmter Fotoequipments tummeln.
 
Zuletzt bearbeitet:

ralfeberle

FF-Team
Mitarbeiter
Dabei seit
10.07.02
Beiträge
11.289
Trophäen
10*15!4{*}1{!}
#56
AW: Stapelverarbeitung: RAW Konvertierung

Hallo!

Nein, die Xx847-Varianten sind praktisch alle gleich schnell. Wohl aber ist Xe847 deutlich schneller als Perfecly Clear.

Gruß,

Ralf
 

hhp

Mitglied
Dabei seit
31.03.07
Beiträge
16
Standort
S-H
#57
AW: Stapelverarbeitung: RAW Konvertierung

Danke, Ralf,

ich habe nochmal gerechnet:

1 Bild in Jpeg und TIFF konvertiert ergibt rd. 40 MB pro Bild.

30 Bilder also 1,2 GB. Dann sind 7 Minuten vielleicht garnicht sooo langsam?

Gruss
phil
 
Dabei seit
07.03.05
Beiträge
108
#58
AW: Stapelverarbeitung: RAW Konvertierung

Hallo Oliver

Nachdem ich nach langem mal wieder mutig die neueste Beta installiert hatte wurde ich auch gleich enttäuscht. Dein Script will nicht mehr???

Vielleicht kannst du als Scriptexperte mal einen Blick auf die Fehlermeldung werfen und eine Lösung finden.

Mein Dank sei dir sicher.

Gruß
Dirk
 

Anhänge

Dabei seit
20.07.05
Beiträge
226
Standort
Greifswald
#59
AW: Stapelverarbeitung: RAW Konvertierung

Hallo Oliver

Nachdem ich nach langem mal wieder mutig die neueste Beta installiert hatte wurde ich auch gleich enttäuscht. Dein Script will nicht mehr???

Vielleicht kannst du als Scriptexperte mal einen Blick auf die Fehlermeldung werfen und eine Lösung finden.

Mein Dank sei dir sicher.

Gruß
Dirk
Hallo
die Lösung hat Heinz schon mal formuliert. Es sind ein paar neue Werte hinzugekommen und das script muss mit ein paar Zeichen angepasst werden.

http://www.ffsf.de/showthread.php?t=10380

hier steht auch wie

MfG Felix
 
Dabei seit
07.03.05
Beiträge
108
#60
AW: Stapelverarbeitung: RAW Konvertierung

Hallo Felix

Vielen Dank für die Info. Jetzt läuft das Script wieder.
Ich hoffe ich habe es richtig verstanden und die Parameter entsprechend richtig angepasst.
Ich nutze den Kameraweißabgleich, die Spitzlichterkorrektur mit 5 und die Interpolationsqualität mit 2.
Die Befehlsfolge habe ich entsprechend so eingetragen:
Code:
(!FF_LoadRawImage(path, 4, 50.0,0,5,2, "")
Könntest du das bitte entsprechend meinen Vorstellungen überprüfen?
Dann wüsste ich wenigstens, daß ich auf dem richtigen Weg bin.

Gibt es eigentlich eine Liste der Scriptbefehle mit entsprechenden Werten die man eintragen kann?

Gruß
Dirk
 
Oben