LibRaw数据结构在头文件libraw / libraw_types.h
中定义。其工作中使用的常量在文件libraw / libraw_const.h中定义
内容:
- 数据结构
- libraw_data_t:LibRaw中的主要数据结构
- 结构libraw_iparams_t:图像的主要参数
- 结构libraw_image_sizes_t:图像尺寸
- 结构libraw_colordata_t:颜色信息
- 结构libraw_imgother_t:图像的其他参数
- 结构libraw_rawdata_t:保存解压缩的RAW数据
- 结构libraw_thumbnail_t:缩略图的描述
- 结构libraw_lensinfo_t - 从EXIF / Makernotes中提取的镜头数据
- 结构libraw_output_params_t:管理dcraw样式的后处理。
- 结构libraw_processed_image_t - dcraw_make_mem_image()/ dcraw_make_mem_thumb()函数的结果集
- 输入抽象层
- 常量
- 枚举LibRaw_errors:错误代码
- enum LibRaw_decoder_flags - RAW数据格式描述
- 枚举LibRaw_progress:LibRaw对象的当前状态
- 枚举LibRaw_thumbnail_formats:缩略图数据格式
- RAW数据处理期间的非标准情况(警告)
- enum LibRaw_image_formats - 可能的数据类型,包含在libraw_processed_image_t结构中
数据结构
libraw_data_t:LibRaw的主要数据结构
结构libraw_data_t是库的用户可访问的数据结构的“包装”。
当使用C ++ API时,它可以作为LibRaw :: imgdata(class_instance.imgdata)访问。通过open_file(和其他open_调用)打开文件后,此结构中的数据出现,但图像本身(由unpack()填充)和包含预览信息的数据(通过调用unpack_thumb()填充)除外。
数据字段:
unsigned int progress_flags;
-
该字段记录
图像处理的过去
阶段。
unsigned int process_warnings;
-
此字段记录图像处理期间出现的
可疑情况(警告)。
libraw_iparams_t idata;
-
该结构描述了从RAW文件中检索的主要图像参数。
下面详细描述该结构的字段。
libraw_image_sizes_t sizes;
-
该结构描述了图像的几何参数。
下面详细描述该结构的字段。
libraw_lensinfo_t镜头;
-
该结构描述了用于镜头的镜头。
下面详细描述该结构的字段。
libraw_makernotes_t makernotes;
-
该结构包含从文件中提取的相机/供应商特定元数据。没有提供说明,对不起,如果您对特定标签/相机/供应商感兴趣 - 请使用Exiftool文档作为参考
libraw_colordata_t颜色;
-
该结构包含从文件中检索的颜色数据。
下面详细描述该结构的字段。
libraw_imgother_t其他;
-
用于信息目的的数据结构:它包含从文件中提取但在进一步文件处理中不需要的图像参数。
下面详细描述该结构的字段。
libraw_thumbnail_t缩略图;
-
包含预览信息和预览数据本身的数据结构。调用open_file()时,将填充此结构的所有字段但缩略图本身。缩略图由unpack_thumb()调用。这些字段在
下面详细描述。
libraw_rawdata_t rawdata;
-
指向原始数据缓冲区的数据结构。细节描述
如下。
ushort(* image)[4];
-
包含图像像素本身的内存区域。调用raw2image()或dcraw_process()时会填充它。
libraw_output_params_t params;
-
用于管理图像后处理的数据结构(使用dcraw仿真器)。
下面详细描述该结构的字段。
void(LibRaw :: * interpolate_bayer)()
-
指向用户指定的拜耳插值功能的指针。如果不为null,则调用此函数而不是user_qual指定的标准函数(或未指定)
void(LibRaw :: * interpolate_xtrans)()
-
指向用户指定的X-Trans插值功能的指针。如果不为null,则调用此函数而不是user_qual指定的标准函数(或未指定)
结构libraw_iparams_t:图像的主要参数
char make [64];
-
相机制造商。
char model[64];
-
相机型号。
char software[64];
-
Softwary名称/版本(主要用于DNG文件,用于区分相机内DNG与Adobe DNG Converter生产的DNG)。
unsigned raw_count;
-
文件中的RAW图像数(0表示文件未被识别)。
unsigned is_foveon;
-
Sigma Foveon图像的非零值
unsigned dng_version;
-
DNG版本(适用于DNG格式)。
-
Foveon矩阵为1,其他为0。LibRaw-demosaic-pack-GPL2支持Foveon。
int colors;
-
文件中的颜色数。
unsigned filters;
-
位掩码描述矩阵中颜色像素的顺序(0表示全彩色图像)。该字段的32位描述16个像素(8行,每个具有两个像素,从左到右,从上到下)。每两位具有值0到3,其对应于四种可能的颜色。通过COLOR(行,列)功能确保方便地使用该字段,该函数返回给定像素的活动颜色的数量。
小于1000的值保留为特殊情况:
- 1 - 叶片捕捉灯,16x16拜耳矩阵;
- 9 - 富士X-Trans(6x6矩阵)
- 3..8和10..999 - 未使用。
char xtrans [6] [6];
char xtrans_abs [6] [6];
-
这些矩阵包含Fuji X-Trans row / col到颜色映射。第一个相对于可见区域,而第二个相对于传感器边缘定位。
char cdesc [5];
-
编号从0到3的颜色描述(RGBG,RGBE,GMCY或GBTG)。
unsigned xmplen; char * xmpdata;
-
XMP打包数据长度和指向提取的XMP数据包的指针。
结构libraw_image_sizes_t:图像尺寸
结构libraw_image_sizes_t是描述图像大小的所有文件数据的集合。
数据字段:
ushort raw_height,raw_width;
-
RAW图像的全尺寸(包括帧),以像素为单位。
ushort height,width;
-
图像的可见(“有意义”)部分的大小(没有帧)。
ushort top_margin,left_margin;
-
框架左上角的坐标(第二个角是根据图像的完整大小和可见部分的大小计算得出的)。
ushort iheight,iwidth;
-
输出图像的大小(可能与需要图像旋转或具有非方形像素的相机的高度/宽度不同)。
unsigned raw_pitch;
-
原始数据的完整大小
以字节为单位。
double pixel_aspect;
-
像素宽高比。如果不是单位,则在输出期间需要沿着一个轴缩放图像。
int flip;
-
图像方向(如果不需要旋转,则为0;如果需要180度旋转,则为3;如果逆时针旋转90度,则为5,如果顺时针旋转90度,则为6)。
-
结构libraw_colordata_t:颜色信息
结构libraw_colordata_t将所有颜色数据合并在一起,这些颜色数据都是从RAW文件中检索出来的,并根据图像本身进行计算。对于不同的相机,有不同的颜色处理方式。
数据字段:
ushort curve[0x10000];
-
相机色调曲线。可以按原样读取或计算,具体取决于文件格式;
unsigned black;
-
黑色等级。取决于相机,它可能为零(这意味着在拆包阶段或相机本身已减去黑色),在解包阶段计算,从RAW文件读取或硬编码。
unsigned cblack [4102];
-
每通道黑电平校正。前4个值是每通道校正,接下来两个是黑色电平模式块大小,比cblack [4] * cblack [5]校正值。
unsigned data_maximum;
-
当前文件中的最大像素值。在raw2image或dcraw_process()调用时计算。
unsigned maximum;
-
最大像素值。根据大多数相机的数据计算,硬编码为其他相机。此值可以在后处理阶段(执行黑色减法时)和自动最大调整时更改(如果
params.adjust_maximum_thr设置为非零,则执行此调整)。
float fmaximum;
-
浮动数据文件的实际图像中的最大像素值。
float fnorm;
-
将浮点原始数据转换为整数时使用的归一化系数。
ushort white [8] [8];
-
从文件CIFF / CRW中提取的白色像素块。未提取其他格式。用于计算白平衡系数。
float cam_xyz [4] [3];
-
相机RGB - XYZ转换矩阵。该矩阵是常数(对于不同的模型是不同的)。对于RGB相机,最后一行为零,对于不同颜色模型(CMYG等),最后一行为非零。
float cam_mul [4];
-
白平衡系数(作为镜头)。从文件读取或计算。
float pre_mul [4];
-
日光白平衡系数(日光平衡)。从文件读取,或根据文件数据计算,或从硬编码常量中获取。
float cmatrix [3] [4];
-
从RAW文件读取的相机颜色数据(如果有)
float rgb_cam [3] [4];
-
相机到sRGB转换矩阵
float ccm [3] [4];
-
从文件元数据中取出相机颜色校正矩阵(如果文件中没有这样的数据,则为统一矩阵)
ph1_t phase_one_data;
-
为Phase One相机读取的颜色数据块。
float flash_used;
float canon_ev;
-
用于白平衡计算的字段(适用于某些P&S佳能相机)。
char model2 [64];
-
固件版本(适用于某些相机)。
char UniqueCameraModel [64],LocalizedCameraModel [64];
-
来自同名DNG标记的值。
void * profile;
-
指向检索到的ICC配置文件的指针(如果它存在于RAW文件中)。
unsigned profile_length;
-
ICC配置文件的长度,以字节为单位
unsigned black_stat [8];
-
如果从掩蔽区域计算出黑色级别统计数据:4个像素值之和,而不是4个像素计数(每个通道)。
libraw_dng_color_t dng_color [2];
-
从DNG读取的颜色数据:两个光源的光源,校准矩阵和颜色矩阵。(详见DNG规格)。
float baseline_exposure;
-
DNG文件:BaselineExposure标记的值。
结构libraw_imgother_t:图像的其他参数
数据字段:
float iso_speed;
-
ISO感光度。
float shutter;
-
快门速度。
float aperture;
-
光圈。
float focal_len;
-
焦距。
time_t timestamp;
-
拍摄日期。
unsigned shot_order;
-
图像序列号。
unsigned gpsdata [32];
-
GPS数据(未解析的块,按原样写入输出)。
libraw_gps_info_t parsed_gps;
-
解析的GPS数据:经度/纬度/高度和时间戳。
char desc [512];
-
图片描述。
char artist[64];
-
图像的作者。
float FlashEC;
-
闪光曝光补偿。
结构libraw_rawdata_t:保存解压缩的RAW数据
结构libraw_rawdata_t:
- 来自传感器的RAW数据,通过unpack()调用进行readed和unpacked 。
- 在后处理期间修改的“备份”颜色副本和数据。当后处理调用重复时,将从此备份恢复所需的数据。
数据字段:
void * raw_alloc;
-
分配用于保存RAW数据的缓冲区
unsigned short * raw_image;
-
指向具有单分量(bayer)数据的缓冲区的指针。
unsigned short(* color3_image)[3];
-
指向3分量像素阵列的指针。
unsigned short(* color4_image)[4];
-
指向具有4分量像素数据数据的缓冲区的指针
float * float_image;
-
指向FP格式的单组件(bayer)数据缓冲区的指针。
float(* float3_image)[3];
-
指向3分量FP像素阵列的指针。
float(* float4_image)[4];
-
指向具有4分量像素数据数据的缓冲区的指针
在调用unpack()之后,只有其中一个字段为非NULL。
此结构的所有其他字段均供内部使用,不应由用户代码触及。
结构libraw_thumbnail_t:缩略图的描述
结构libraw_thumbnail_t描述了与RAW文件中保存的预览相关的所有参数。
数据字段:
LibRaw_thumbnail_formats tformat;
-
缩略图数据格式。枚举
LibRaw_thumbnail_formats中的一个值。
ushort twidth,theight;
-
预览图像的尺寸(以像素为单位)。
float tlength;
-
缩略图长度,以字节为单位
int tcolors;
-
预览中的颜色数。
char * thumb;
-
指向从数据文件中提取的thumbmail的指针。
-
-
结构libraw_lensinfo_t:解析镜头数据
从Makernotes和EXIF中提取以下参数,以帮助识别相机上安装的镜头。如果Makernotes或EXIF中缺少该值,则参数设置为零,但下面列出了一些例外情况。在某些情况下,CameraFormat和CameraMount等字段的值是根据相机型号和/或相机ID设置的。
libraw_makernotes_lens_t结构:
- LensID(如果不是-1)和CamID(摄像机ID,如果非零)值与exiftool中使用的值兼容,如| 0x0010 CanonModelID | 和| 22镜头类型| 见http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/Canon.html或0x0207 / CameraType和0x0201 / LensType(见http://www.sno.phy.queensu.ca/~ phil / exiftool / TagNames / Olympus.html)
- 镜头字符串(如果不为空)包含Makernotes中显示的镜头名称。
- LensFormat和CameraFormat'目前提供enum LibRaw_camera_formats中的一个值;
- 以类似的方式,'LensMount'和'CameraMount'的值遵循枚举LibRaw_camera_mounts;
- 在某些情况下,MF相机的Makernotes包含身体的id或包含身体名称的字符串。该名称将复制到“body”字段,而id将转换为相应的正文名称,并复制到“body”字段。在其他情况下,“body”字段为空。
- FocalType基于Makernotes标记设置(如果存在)。值为:-1未定义; 0未知; 1个固定焦距镜头; 2变焦镜头
- LensFeatures_pre - 镜头名称前缀和LensFeatures_suf - 镜头名称后缀:(如果不是空的话)一些摄像机记录字母汤,在单独的Makernote标签中表征镜头(例如,参见 http://www.sno.phy.queensu的0xb02a LensSpec) .ca / ~phil / exiftool / TagNames / Sony.html),对于某些镜头,这些首字母缩略词可以从'镜头'字段本身派生(参见processCanonCameraInfo)。这些还可以帮助更好地识别镜头。
- 'MinFocal'和'MaxFocal',如果非零,则包含安装在相机上的镜头的最小和最大焦距。
- 'MaxAp4MinFocal','MaxAp4MaxFocal','MinAp4MinFocal','MinAp4MaxFocal' - 如果非零,包含最小焦距的最大光圈,最大焦距可用的最大光圈,最小焦距可用的最小光圈,最小光圈可用最大焦距分别为。
- 'MaxAp'和'MinAp',如果非零,则包含镜头的最大光圈(通常是最小焦距的最大光圈)和焦距范围内的最小光圈。对于具有可变最大光圈的变焦镜头,这通常是最大焦距的最小光圈。
- 'CurFocal',如果非零,则是当前焦距 - 即用于拍摄的焦距。
- 'CurAp',如果非零,则是当前孔径。
- 'MaxAp4CurFocal'和'MinAp4CurFocal',如果非零,则包含当前焦距的最小和最大光圈。
- 'LensFStops' - 如果非零,则包含光圈“咔嗒声”的数量或f-stop的数量,具体取决于相机的型号。
- 'TeleconverterID','AdapterID','AttachmentID',如果非零,则是从Makernotes中提取的数字,用于识别用于拍摄的镜头配件。
- 'Teleconverter','Adapter','Attachment',如果非空,则是包含Makernotes中出现的附件名称的字符串,或者是某些相机的字符串,从Makernotes中的数字字段解码。
- 大多数情况下不应该需要'CanonFocalUnits' - 辅助字段。有关此值的更多信息,请参阅exiftool中的Canon.pm模块。
- 'FocalLengthIn35mmFormat',如果非零:由于某种原因,某些三星相机会在Makernotes中记录此值而不是EXIF。也用于Sigma相机。
libraw_nikonlens_t结构:
包含使用桌子识别尼康相机镜头所需的其他参数 - 请参阅http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/Nikon.html上的 Nikon LensID值。
libraw_dnglens_t结构:
包含最小焦距,最大焦距,最小焦距下可用的最大光圈,以及最大焦距下可用的最大光圈,从DNG原始文件的EXIF字段中提取。
libraw_lensinfo_t结构:
包含上述所有结构,以及直接从EXIF字段提取的参数:
- 'MinFocal'和'MaxFocal',如果非零,则包含安装在相机上的镜头的最小和最大焦距。
- 'MaxAp4MinFocal','MaxAp4MaxFocal' - 如果不为零,则包含最小焦距的最大光圈和最大焦距下可用的最大光圈
- 'LensMake',如果不是空的,则包含带有镜头制造商名称的字符串。
- “镜头”(如果不为空)包含EXIF中记录的镜头名称
- 'FocalLengthIn35mmFormat' - 如果非零,与EXIF标准中的FocalLengthIn35mmFilm相同,标记为0xa405。
- 'EXIF_MaxAp' - 如果非零,则包含从EXIF标记0x9205派生的值。
结构libraw_output_params_t:管理dcraw样式的后处理
结构libraw_output_params_t用于管理dcraw兼容调用dcraw_process(),dcraw_ppm_tiff_writer()和dcraw_thumb_writer()。此结构的字段对应于dcraw的命令行键。
数据字段:
unsigned greybox [4];
-
dcraw keys: -A xywh
4个数字,对应于用于计算白平衡的矩形的坐标(以像素为单位)。X和Y是左上角矩形的坐标; w和h分别是矩形的宽度和高度。
unsigned cropbox [4];
-
dcraw keys: none
此字段设置图像裁剪矩形。Cropbox [0]和cropbox [1]是矩形的左上角坐标,其余两个值分别是width和height。在任何图像旋转之前应用所有坐标。
double abe[4];
-
dcraw keys: -C
校正色差; 唯一指定的值是像素
[0],红色乘数像素
[2],蓝色乘数。对于某些格式,它会影响
RAW数据读取,因为像差校正会改变输出大小。
double gamm [6];
-
dcraw keys: -g power toe_slope
设置用户伽玛曲线。库用户应该设置gamm数组的前两个字段:
gamm [0] -
反向伽马值)
gamm [1] - 线性部分的斜率(所谓的脚趾斜率)。对于简单的功率曲线,设置为零。
剩余的4个值将自动填充。
默认设置为rec。使用BT.709:功率2.222(即gamm [0] = 1 / 2.222)和斜率4.5。对于sRGB曲线,使用gamm [0] = 1 / 2.4和gamm [1] = 12.92,对于线性曲线设置gamm [0] / gamm [1]为1.0。
float user_mul [4];dcraw keys: -r mul0 mul1 mul2 mul3用户白平衡的
4个乘数(r,g,b,g)。
unsigned shot_select;dcraw keys: -s
选择要处理的图像编号(对于在一个文件中包含多个RAW图像的格式)。
float bright;dcraw keys: -b
亮度(默认1.0)。
float threshold;dcraw keys: -n
通过小波去噪降噪的参数。
int half_size;dcraw键: -h
以50%的大小输出图像。对于某些格式,它会影响
RAW数据读取。
int four_color_rgb;dcraw keys: -f
为两个绿色组件切换单独的插值。
int highlight;dcraw keys: -H
0-9:高亮模式(0 =剪辑,1 =取消剪辑,2 =混合,3 + =重建)。
int use_auto_wb;dcraw keys: -a
使用对整个图像求平均后获得的自动白平衡。
int use_camera_wb;dcraw keys: -w
如果可能,请使用相机的白平衡。
int use_camera_matrix;dcraw keys: + M / -M
- 0:不使用嵌入的颜色配置文件
- 1(默认):对DNG文件使用嵌入的颜色配置文件(如果存在)(总是); 仅当设置了use_camera_wb时才能用于其他文件;
- 3:无论白平衡设置如何,都使用嵌入的颜色数据(如果存在)。
int output_color;dcraw keys: -o
[0-5]输出颜色空间(原始,sRGB,Adobe,Wide,ProPhoto,XYZ)。
char * output_profile;dcraw keys: -o filename
输出配置文件ICC文件的路径(仅在使用LCMS支持编译LibRaw时使用)
char * camera_profile;
dcraw keys:-p file
输入(相机)配置文件ICC 文件的路径(或嵌入配置文件的“嵌入”)。仅在编译LCMS支持时使用。
char * bad_pixels;
dcraw keys:-P文件
带有坏像素映射的文件的路径(以dcraw格式:“列行以像素为单位的死像在UNIX格式中”,每行一个像素)。
char * dark_frame;dcraw keys: -K文件
暗帧文件的路径(16位PGM格式)
int output_bps;dcraw keys: -4
8位(默认)/ 16位(键-4)。
int output_tiff;dcraw keys: -T
0/1:输出PPM / TIFF。
int user_flip;dcraw keys: -t
[0-7]翻转图像(0 =无,3 = 180,5 = 90CCW,6 = 90CW)。默认值为-1,表示从RAW获取相应的值。
对于某些格式,
会影响RAW数据读取,例如,从柯达相机中解压缩缩略图。
int user_qual;dcraw keys: -q
0-10:插值质量:
- 0 - 线性插值
- 1 - VNG插值
- 2 - PPG插值
- 3 - AHD插值
- 4 - DCB插值
- 5 - Paul Lee修改的AHD插值
- 6 - AFD插值(5遍)
- 7 - VCD插值
- 8 - 混合VCD /修改AHD插值
- 9 - LMMSE插值
- 10 - AMaZE插值
- 11 - DHT插值
- 12 - 改进的AHD插值(作者Anton Petrusevich)
仅当编译了“LibRaw demosaic pack GPL2”时,值5-9才有用(有关详细信息,请参阅发行版中的README.demosaic-packs)。仅当LibRaw使用“LibRaw demosaic pack GPL3”编译时,值10才有用。如果某些插值方法不受支持,因为LibRaw编译时没有相应的demosaic pack,将使用AHD插值并在process_warniong字段中设置LIBRAW_WARN_FALLBACK_TO_AHD。
int user_black;dcraw keys: -k
用户黑电平。
int user_cblack [4];dcraw keys: none
对user_black的每通道更正。
int user_sat;dcraw keys: -S
饱和度调整。
int med_passes;dcraw keys: -m
中值滤波器通过次数。
int no_auto_bright;dcraw keys: -W
不要使用直方图自动增加亮度。
float auto_bright_thr;dcraw keys: none
使用自动亮度增加时被剪裁像素的一部分。对于dcraw兼容性,默认值为0.01(1%)。现代低噪声多像素摄像机的推荐值取决于拍摄风格。0.001-0.00003范围内的值看起来合理。
float adjust_maximum_thr;dcraw keys: none
此参数根据从实际帧数据计算的channel_maximum []数据控制最大值的自动调整。如果计算的最大值大于adjust_maximum_thr * maximum,则将maximum设置为calculated_maximum。
默认值:0.75。如果将此值设置为高于0.99999,则将使用默认值。如果将此值设置为低于0.00001,则不会执行最大调整。
调整最大值不应该损坏任何图片(特别是如果你使用默认值),并且非常有用于纠正通道溢出问题(风景照片上的洋红色云,室内拍摄的绿 - 蓝亮点)。
int use_fuji_rotate;dcraw keys: -j
默认-1(使用),0 - 不要对富士传感器上的摄像机使用旋转。
int green_matching;打开固定绿色通道的不平衡。
dcraw keys: none
默认值:0(不使用),1 - 打开此后处理阶段。green_matching需要额外的内存来存储图像数据。
int dcb_iterationsdcraw keys:无
DCB校正通过次数。默认值为-1(无校正)。仅适用于DCB插值。
int dcb_enhance_fldcraw keys:无非
零:具有增强插值颜色的DCB插值。
int fbdd_noiserddcraw keys: none
在去马赛克之前控制FBDD降噪。
- 0 - 不使用FBDD降噪
- 1 - 减少FBDD
- 2(及更多) - 完全减少FBDD
int eeci_refinedcraw keys:无
nonzero-使用EECI细化VCD插值。
int es_med_passesdcraw keys:无
VCD + AHD去马赛克后边缘敏感中值滤波器的数量。高度不推荐高于1的值。
int ca_correcdcraw keys:无
正值打开色差抑制(默认值:0即关闭)。
float cared,cablue
dcraw keys: none
如果其中一个字段为非零,则将使用这些值而不是自动值。可用范围是+ -0.1 .. + - 4.0。
int cfaline; float linenoise;线路噪音(绑扎)减少。
正值会启用此功能(默认值:关闭)。
linenoise - 减少量。有用的范围是0.001到0.02。默认值为0.0即不清洁任何东西。
int cfa_clean; float lclean,cclean;降低脉冲噪声和高斯高频。
cfa_clean:正值打开该功能(默认值:关闭)。
lclean,cclean - (L)uminance和(C)olor的降噪量。可用范围从0.005到0.05,通用值0.01
int cfa_green; float green_thresh;减少绿色通道不良平衡产生的迷宫伪影。
cfa_green:正值会打开该功能(默认值:关闭)。
green_thresh - 允许均衡的通道之间的最大差异。有用范围在0.01和0.1之间。
int exp_correc; float exp_shift,exp_preser;在去马赛克之前进行曝光校正。
- exp_correc:正值打开该功能(默认值:关闭)。
- exp_shift:线性刻度的曝光偏移。可用范围从0.25(2档变暗)到8.0(3档减速机)。默认值:1.0(无曝光转换)。
- exp_preser:在使图像变亮时保留高光。可用范围从0.0(无保存)到1.0(完全保存)。0.0是默认值。
int wf_debanding; float wf_deband_treshold [4];wf_debanding:1开启条带抑制(慢!),0关闭它。
wf_deband_treshold [] - 每个通道的debanding阈值。
int use_rawspeed;打开使用RawSpeed库进行数据解包(仅当编译了RawSpeed支持时)。
int no_auto_scale;在LibRaw :: dcraw_process()中禁用像素值缩放(调用LibRaw :: scale_colors())
int no_interpolation;在LibRaw :: dcraw_process()中禁用对去马赛克代码的调用
int raw_processing_optionsunpack()阶段用于特定图像格式的处理选项
Sigma Quattro解码标志:
- LIBRAW_DP2Q_INTERPOLATERG - 打开R / G通道插值
- LIBRAW_DP2Q_INTERPOLATEAF - 打开Quattro传感器上低灵敏度(AF或过度曝光控制)点的数据插值。
Pentax 4-shot选项:
- LIBRAW_PROCESSING_PENTAX_PS_ALLFRAMES - 合并Pentax 4镜头文件的所有帧
浮点DNG文件:
- LIBRAW_PROCESSING_CONVERTFLOAT_TO_INT - 将FP数据转换为16位整数
索尼ARW2.3处理选项:(有关详细信息,请参阅http://www.rawdigger.com/howtouse/sony-craw-arw2-posterization-detection)
- LIBRAW_PROCESSING_SONYARW2_BASEONLY - 仅解码基本像素,将delta像素保留为零;
- LIBRAW_PROCESSING_SONYARW2_DELTAONLY - 仅解码基本像素为零的delta像素;
- LIBRAW_PROCESSING_SONYARW2_DELTAZEROBASE - 解码delta像素,不添加基值;
- LIBRAW_PROCESSING_SONYARW2_DELTATOVALUE - 显示可能的分色区域;
佳能/尼康小RAW(YCC)解码标志(不要同时使用两者):
- LIBRAW_PROCESSING_SRAW_NO_RGB - 禁用YCC到RGB转换
- LIBRAW_PROCESSING_SRAW_NO_INTERPOLATE - 禁用缺失的颜色值插值
Foveon处理标志:
- LIBRAW_PROCESSING_FORCE_FOVEON_X3F - 即使使用Demosaic Packs GPL2编译,也可以使用X3F工具进行foveon处理
int sony_arw2_posterization_thr如果LIBRAW_PROCESSING_SONYARW2_DELTATOVALUE用于arw2_options,则设置级别以禁止阴影中的分色显示。
float coolscan_nef_gamma;Coolscan NEF解码的Gamma值(无法从文件获取,应通过调用应用程序设置)。
char p4shot_order [5];Pentax 4shot文件的拍摄顺序。默认值为“3102”。
结构libraw_decoder_info_t:RAW解码器名称和数据格式
该结构描述了RAW格式的解码器名称和数据格式:
const char * decoder_name
-
解码器功能名称
unsigned decoder_flags
-
解码器数据格式。有关详细信息,请参阅
LibRaw_decoder_flags列表。
结构libraw_processed_image_t - dcraw_make_mem_image()/ dcraw_make_mem_thumb()函数的结果集
结构libraw_processed_image_t是通过调用dcraw_make_mem_image()/ dcraw_make_mem_thumb()生成的,包含内插数据或缩略图的内存图像。
数据字段:
LibRaw_image_formats类型
-
该字段记录数据类型,包含剩余的结构字段。
- LIBRAW_IMAGE_BITMAP - 结构包含RGB位图。所有元数据字段(见下文)都有效并描述了图像数据。
- LIBRAW_IMAGE_JPEG - 结构包含JPEG文件的内存映像。只有type,data_size和data字段有效(且非零);
ushort height,width
-
图像大小(以像素为单位)。仅在type == LIBRAW_IMAGE_BITMAP时有效。
ushort colors,bits
-
颜色分量(1或3)和颜色深度(以位为单位)(8或16)。仅当type == LIBRAW_IMAGE_BITMAP时,这些字段才有效。
ushort gamma_corrected
-
位图数据是否经过伽马校正(对于8位数据始终为1,对于16位可能为0或1)。仅在type == LIBRAW_IMAGE_BITMAP时有效。
unsigned int data_size
-
数据字段的大小(以字节为单位)。对于等于(height * width * colors *(bits / 8))的位图图像。对于JPEG图像 - 精确的JPEG大小(即提取的thnumbnail大小+ JPEG标题+ EXIF标题)。
unsigned char data []
-
数据数组本身。应解释为位图类型的RGB三元组和JPEG类型的JPEG文件。
输入抽象层
LibRaw中的RAW数据输入(读取)通过调用从LibRaw_abstract_datastream抽象类派生的对象的方法实现。完整的方法列表在href =“API-CXX.html#datastream”> C ++ API参考中描述。
有两个现成的数据流对象实现:
LibRaw用户可以创建从LibRaw_abstract_datastream派生的自己的datastream对象。例如,这样的对象可以实现直接从相机读取RAW数据(通过远程接口)。LibRaw可以通过LibRaw :: open_datastream()接口使用这些对象。
数据流可以通过LibRaw :: open_datastream()调用(在这种情况下应该创建由用户维护的数据流对象)或通过LibRaw :: open_file()和LibRaw :: open_buffer()快捷方式使用。
只有C ++ API用户可以使用面向对象的接口并实现自己的输入接口。对于C API用户,只有内置的libraw_open_file()/ libraw_open_buffer()快捷方式可用。
数据字段
定义:
class LibRaw_abstract_datastream {... protected:LibRaw_abstract_datastream * substream;}
描述:从LibRaw_abstract_datastream派生的Oject总是包含指向辅助数据流(子流)的指针。此子流在需要时在内部初始化(实际上仅用于Sony RAW数据)并用于临时切换输入流到LibRaw内部分配的临时内存缓冲区。
在自己的数据流对象创建指南中更精确地描述了子流使用细节。