RAW-Bilder mittels C-Bibliothek importieren
LibRaw (http://www.libraw.org) ist eine Bibliothek zum Lesen von RAW-Dateien, die von Digitalkameras produziert werden (CRW/CR2, NEF, RAF, DNG und andere). Importieren Sie RAW-Bilder in die Wolfram Language mithilfe von LibRaw.
Die unten dargestellte Funktion read_raw_image extrahiert den Pfad zu einer Datei und gibt einen Bildausdruck zurück. Das komplette Beispiel finden Sie hier.
EXTERN_C DLLEXPORT int read_raw_image(WolframLibraryData libData, mint Argc,
MArgument *Args, MArgument res) {
...
WolframImageLibrary_Functions imgFuns = libData->imageLibraryFunctions;
...
file = MArgument_getUTF8String(Args[0]);
libraw_open_file(iprc, file);
libraw_unpack(iprc);
iprc->params.output_bps = 8;
...
img = libraw_dcraw_make_mem_image(iprc, &check);
...
if (img->bits == 16) {
raw_t_ubit16 * raw_data = (raw_t_ubit16*)img->data;
imgFuns->MImage_new2D(
img->width, img->height, 3,
MImage_Type_Bit16, MImage_CS_RGB, 1,
&out);
memcpy(imgFuns->MImage_getBit16Data(out),
raw_data,
img->width * img->height * 3 * sizeof(raw_t_ubit16));
} else { ... }
MArgument_setMImage(res, out);
...
}
Laden Sie die Funktion und verwenden Sie diese, um eine RAW-Datei zu importieren.
Out[1]= | |
Out[2]= | |
Out[3]= | |