Zurück zu Daves Coffino Hausseiten

Roh-Decoding (RAW) von digitalen Fotos in Linux

in English
en Esperanto
em Português
на русском

Herzlich Willkommen! Wenn Sie sich fragen, wie man Ihre Digitalkamera und Download-Bilder zu einem Linux PC verbindet, gehen Sie zur gPhoto Einstiegsseite. Meine Software ist, um jene Images nach dem Herunterladen von ihnen zu bearbeiten.

Wenn Sie JPEG Dateien herunterladen, brauchen Sie meine Software überhaupt nicht. Das Bild ist bereits innerhalb der Kamera bearbeitet worden. Fast alle gemachten Digitalkameras seit 1997, erzeugen JPEG Bilder, also warum würden Sie es ein anderer Weg tun wollen?

So, trotz der Bequemlichkeit und Allgegenwart von JPEG, gibt es einige Nachteile. JPEG ist ein Lossy-Format – um ein großes Bild eine kleine Datei einzubauen, viel Information wird weggeworfen. Deshalb des mittleren Bereichs und hohes Ende bieten Digitalkameras eine Alternative an: Rohe, unverarbeitete CCD Datendateien, für die der Kamerahersteller spezielle Entzifferungssoftware zur Verfügung stellt.

Natürlich ist diese Software für Windows und Macintosh nur ohne Quellcode. So ist es nutzlos für die Benutzer aus anderen Betriebssystemen, Programmierern, die hoffen, einen besseren Interpolationsalgorithmus zu entwerfen, und in einem Zeitalter noch nicht geborene Historiker, wenn die einzigen Windows-Maschinen in Museen sein werden.

Also ist hier meine Mission: Schreiben Sie und erhalten Sie einen ANSI C Programm aufrecht, das jedes rohe Bild von jeder Digitalkamera auf jedem Computer decodiert sein kann, der jedes Betriebssystem führt.

Dieses Programm wird genannt dcraw (hat "dee-see-raw" ausgesprochen), und es ist ein Standardwerkzeug innerhalb und ohne die Welt des Open Sources geworden. Es ist (ungefähr 9000 Linien) klein, (Standard C Bibliotheken nur) tragbar, (sowohl "gratis" als auch "libre"), und wenn frei verwendet ist, erzeugt bessere Qualitätsproduktion als die vom Kameraverkäufer zur Verfügung gestellten Werkzeuge.

Hier ist meine Zusammenfassung. Ich tue Freiberufler-Beratung, die mit dcraw verbunden ist, und ich bin auch für die Vollzeitsoftwarearbeit in den Nordöstlichen USA verfügbar.

Ich kann erreicht werden, indem ich E-Mail an das Cybercom-Punktnetz mit dem Benutzernamen "dcoffin" sende.

Meine Programme

Wenn anderes im Ausgangskode nicht gesagt ist, sind diese Programme kostenlos für eine beliebige Nutzung, obwohl ich die Anerkennung für sie finden wollte. Die Geschenke werden auch begrüßt, wenn Sie das Geld verdienen, meine Programme verwendend.

Hinweis für Linux-Verteilung: Die einzigen rechtskräftigen Dateien, die von ein dcraw Paket installiert werden sollten, sind "dcraw", "clean_crw", und vielleicht "fuji_green", "fujiturn", und "fujiturn16". Meine Schale-Schriften sind gefährlich, und sollten nur in einem "doc"-Verzeichnis installiert werden, ohne Erlaubnis auszuführen.

Für Hacker nur:

Internationalisierung

Um mehrsprachigen dcraw in Linux zu bauen und zu installieren, laden Sie den letzten tar-Archive aus diesem Verzeichnis herunter, und führen Sie die "install" Schrift. Die zurzeit unterstützten Sprachen sind Esperanto, Russisch, Französisch, Italienisch, Deutsch, Portugiesisch, Spanisch, Niederländisch, Polnisch, Ungarisch, Tschechisch, Schwedisch, Katalanisch, Dänisch, und Chinesisch (sowohl Traditionell als auch Vereinfacht).

To build a unilingual, self-contained DCRAW.EXE for DOS/Windows, use a source file from this directory instead.

Um eine andere Sprache hinzuzufügen, senden Sie mir Übersetzungen dieses manpage und dieses Nachrichtentisches in der UTF-8-Verschlüsselung. Übersetzen Sie nur aus meinen ursprünglichen Englisch- und Esperanto-Texten – andere Sprachen können sachliche für mich, unsichtbare Fehler enthalten.

Übersetzen Sie nicht "Kann nicht X tun" als nicht tun "Es ist unmöglich, X zu tun". Dcraw ist so nicht vollkommen, wenn er etwas nicht tun kann, das nicht bedeutet, dass die Aufgabe unmöglich ist. Computer müssen das Pronomen "Ich" nie verwenden, so schreiben Sie "dcraw kann X nicht tun".

When in doubt, translate everything. I proofread these texts before releasing them, and it's much easier for me to correct over-translation than under-translation.

Dcraw decodes raw photos, not raw files. No digital camera generates raw files in normal usage, there's always a header with useful metadata. (For abnormal usage, see CHDK and DIAG RAW below)

"raw" ist ein englisches Wort, nicht ein Akronym oder Dateiformat. "rohes Foto" sollte mit demselben Adjektiv übersetzt werden, das Sie für "grobe" Öl- oder "Rohstoffe" verwenden würden.

Es gibt Dutzende von rohen Foto-Formaten: CRW, CR2, MRW, NEF, RAF, usw. "RAW Format" existiert nicht; es ist eine Illusion von der dcraw Fähigkeit geschafft, alle rohen Formate zu lesen.

Andere rohe Foto-Decoder

Dcraw hat es viel leichter für Entwickler gemacht, eine breite Reihe von Digitalkameras in ihren Anwendungen zu unterstützen. Sie können dcraw von einer grafischen Schnittstelle nennen, Teig-Stücken von dcraw.c in ihren Code, oder gerade dcraw.c als die Dokumentation verwenden, die sich Kameraschöpfer weigern zur Verfügung zu stellen:

Häufig gestellte Fragen

Ich habe nicht einen C Bearbeiter. Konnten Sie mir einen rechtskräftigen senden?
Nein, aber Monte Francisco bietet ausführbaren Dateien für Mac und Windows auf Ihrer Website.

Wenn Sie mit der DOS-Befehl-Linie vertraut sind, aber C nicht wissen, können Sie diesen freien C Bearbeiter für Windows installieren und dcraw.c ganz leicht kompilieren.

Warum sagt dcraw "Aus dem Gedächtnis" in der Windows-Vista?
Diese willkürliche Beschränkung Windows Vista, die im ersten Servicepaket korrigiert sein wird. Thomas Nicely (bekannt nach dem Entdecken des Fehlers FDIV beim Prozessor Pentium) hat eine Seite, die das vorliegende Problem beschreibt. In den laufenden Moment, die einzige Weise, dieses Problem zu vermeiden ist die Bildung der Datei dcraw.exe mit Hilfe von Microsoft des Compilers anstelle des Compilers GNU zu erstellen.

Wie kann ich die EXIF Daten (Verschluss-Geschwindigkeit, Öffnung, usw.) lesen?
Das Programm Phil Harvey ExifTool stellt einem vereinigten Perl-basierten EXIF Leser zur Verfügung (und Redakteur!) für alle Kameras und Dateiformate. "dcraw -i -v" ist viel schneller, aber gibt weniger Auskunft.

Wie kann ich NEF Dateien von Nikon Scannern lesen?
Dcraw unterstützt nur Kameras. Versuchen Sie dieses einfache Programm für Scanner.

Wie kann ich Staubbilder Nikon (NDF Dateien) lesen?
Verwenden Sie dieses Programm.

Haben Sie irgendwelche Spezifizierungen, die rohe Foto-Formate beschreiben?
Ja, aber sie neigen dazu, wichtige Details wegzulassen, wie man das rohe Bild dekomprimiert oder privaten metadata entschlüsselt. Siehe die offizielle Dokumentation auf TIFF, TIFF/EP, Adobe DNG, CIFF (CRW), und X3F.

Wo bekomme ich eine Auswahl von RAW-Bildern, um ihre Software zu testen?
For the latest cameras, I get samples from Photography Blog. A "Full Review" at Imaging Resource usually includes a few raw shots. www.rawsamples.ch is no longer updated, but it has samples from older cameras. Für eine komplette Test-Set von RAW-Bildern dcraw (alle Kameras von dcraw unterstützt), werde ich den Verkauf einer Reihe von 3-DVD für $ 700 und ein Upgrade des Internet für 300 Dollar pro Jahr.

Ich entwerfe eine Digitalkamera. Wie wandle ich seine rohen Fotos in etwas um, was dcraw und Adobe Photoshop öffnen können?
Laden Sie LibTIFF v3.8.2 herunter und wenden Sie diesen Fleck an. Dann verwenden Sie dieses C Programm eine Schablone, um Ihre Fotos zu gültigen Dateien von Adobe DNG umzuwandeln.

Warum sind dcraw Produktionsimages größer als JPEGs Kamera?
Jeder Algorithmus, der jedes Pixel mit seinen Nachbarn verbindet, ist dabei Probleme in der Nähe von den Rändern zu haben. C Code ist preiswert, so wendet dcraw einen verschiedenen Algorithmus an, um Pixel zu umsäumen. Hardware-Logik ist teuer, so Kamera schneidet Rand-Pixeln nach der Verarbeitung ab.

Ich habe ein rohes Foto ohne Licht gemacht. Warum scheint es alles laut, wenn es fester Schwarzer sein sollte?
No matter how dark an image is, dcraw's auto-exposure stretches it so that one percent of its pixels appear white. The "-W" option avoids this behavior.

Ich ändere die Helligkeit auf das Plus/Minus zwei Schritte des Zwerchfelles, aber alle fünf Bilder sehen fast identisch in dcraw aus. Warum?
Siehe die vorhergehende Frage.

Warum ist 16-Bit-Output unlesbar/dunkel?
Wenn Sie hübsche Bilder gerade aus dcraw wollen, bei 8-Bit-Output bleiben. Geradlinige 16-Bit-Produktion ist der beste Rohstoff für Berufsbildredakteure wie Photoshop und CinePaint, aber es nutzt für die meisten Bildzuschauer nichts.

Was tut den "-f" (vier Farben-RGB), tut Auswahl?
Wenn Sie Muster wie dieses oder dieses in Ihren Outputimages sehen, zuerst versuchen Sie "dcraw-a". Wenn diese Muster andauern, verwenden Sie "dcraw-f", um sie loszuwerden.

Konnten Sie bitte eine Auswahl für den TIFF / FITS / PNG / BMP / JPEG output hinzufügen?
In Versionen 8.25 und später, "dcraw-T" schreibt TIFF-Produktion mit Metadaten. Für das Erhalten anderer Formate:
dcraw -c crw_0001.crw | pnmtofits > crw_0001.fits
dcraw -c crw_0001.crw | pnmtopng > crw_0001.png
dcraw -c crw_0001.crw | ppmtobmp > crw_0001.bmp
dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg
Ich habe das Werkzeug von Netpbm in diesen Beispielen verwendet. ImageMagick tut auch Format-Konvertierungen der Befehl-Linie. Beide sind frei.

Warum führen Sie nicht dcraw als eine Bibliothek?
Ich habe entschieden, dass dcraw ein Programm der Befehl-Linie sein soll, das in C geschrieben ist, und dass weitere Abstraktionsschichten um diesen Kern hinzugefügt werden müssen, nicht darin.

Bibliothekscode ist hässlich, weil er globale Variablen nicht verwenden kann. Bibliotheken sind schwieriger, zu modifizieren, zu bauen, zu installieren, und zu prüfen, als eigenständige Programme, und sind so für Dateiformate diese Änderung jeden Tag unpassend.

Es gibt eine einfachere Weise, dcraw modular und vor dem Faden sicher zu machen: Führen Sie es als ein getrennter Prozess. Eric Raymond erklärt diese Technik hier.

Warum sind dort falsche Farben entlang Rändern innerhalb des Bildes?
Wegen der Interpolation. Das ist ein hartes Problem, leicht definiert:
  1. Nehmen Sie ein dreifarbiges RGB Bild. An jedem Pixel Satz schätzt zwei Farben zur Null.
  2. Bauen Sie das ursprüngliche dreifarbige Bild als am besten wieder auf Sie können von der restlichen-Farbe pro Pixel.
Dcraw gibt zurzeit eine Wahl von vier Methoden: Bilineare, Variable Zahl von Anstiegen (VNG), Patterned Pixel Grouping (PPG) und Adaptive Homogeneity-Directed (AHD).

Foveon X3 Capture Chip verlangt eine verschiedene Art der Interpolation. Verschieden von der CCD-Reihe, gewinnt es drei Farben an jeder Pixel-Position. Aber die Farben werden nicht gut getrennt, so sehen die rohen Daten sehr grau aus. Viel Verarbeitung ist erforderlich, um Farbe zu erhöhen, während man Geräusch unterdrückt.

Wie kann ich meine Kamera programmieren, um die Roh-(RAW-) Fotos zu bekommen?
For Canon PowerShots that don't output CRW or CR2, you need the CHDK hack.
Für einige Kameras Nikon Coolpix müssen Sie das spezielle Regime "DIAG RAW" einsetzen.
Für die Kameras Casio siehe die Webseite Maurice Delaney oder lesen Sie diese Diskussion nach dpreview.
Für die Kameras Minolta DiMAGE G400, G500, G530, oder G600 gehen Sie Por la Minolta DiMAGE G400, G500, G530, aŭ G600, iru hier (auf russische Sprache) oder hier (auf englische Sprache).
Für die Kameras Minolta DiMAGE Z2 und Nikon Coolpix 2100/3100/3700 gehen Sie hier.
Für die Kameras SMaL siehe das Forum camerahacking.
Für die Kameras Agfa und Samsung gehen Sie hier.

Für andere Kameras lesen Sie die Bedienungsanleitung.

Ob dcraw meine Kamera unterstützt?
Most likely, yes. If your camera is not on this list, try dcraw anyway. If it doesn't work perfectly, don't just sit quietly waiting for my next version. Ask me if I need any raw photos, or go ahead and post a photo to your website and e-mail me the URL. If you don't have a website, use YouSendIt, RapidShare, Sendshack, ShareFile, sendspace, or Megaupload.

Before choosing a photo to send, read the next question:

Why does dcraw output have a green tint and weak color?
Because dcraw doesn't have a color matrix for your camera model, it outputs raw color instead of sRGB. To fix this, I need a photo of a Wolf Faust, Calibr8, CMP, GretagMacbeth, or other calibrated color chart. Follow this checklist:
  • Use a real chart, not a printout or screen image.
  • Wait for sunny weather, local noon ± two hours.
  • Carefully brush any dust off the chart.
  • Tilt the chart 90° to the camera and 45° to the sun to avoid specular reflections.
  • Set the camera two meters away and use telephoto zoom.
  • Use the lowest ISO setting.