【LibRaw】原始图像解码库介绍(九)——C++ API之数据使用后处理:dcraw行为的仿真

数据使用后处理:dcraw行为的仿真

可以使用dcraw函数代替编写自己的Bayer模式后处理函数,这些函数在调用open_file()+ unpack()/ + unpack_thumb()/之后调用

参数设定

实际上,可以通过dcraw命令行设置的所有参数都是通过为LibRaw :: imgdata.params结构的字段赋值来指定的这个结构的类型是libraw_output_params_t ; 数据结构的描述中详细列出和描述了所有字段

int LibRaw :: raw2image

此函数为后处理(imgdata.image)分配缓冲区,并使用与LibRaw 0.13 / 0.14及更低版本兼容的数据布局填充它。如果缓冲区已经分配,​​则将自由()编辑并再次分配。

只有在代码执行后处理阶段时才应调用此函数。如果使用LibRaw的后处理调用(见下文),则不需要调用raw2image()。

该函数根据返回代码约定返回一个整数:如果任何系统调用返回错误,则为正数;如果LibRaw中存在错误情况,则返回负数(来自LibRaw错误列表)。

void LibRaw :: free_image

此函数释放raw2image()分配的imgdata.image缓冲区;

如果程序不需要当前的后处理结果(例如已经在某处复制),则应该调用此方法,但是可以进行新的后处理调用(使用其他设置),因此应尽早调用recycle()

int LibRaw :: adjust_sizes_info_only(void)

对于以下情况,该函数计算输出图像的正确大小(imgdata.sizes.iwidth和imgdata.sizes.iheight):

  • 富士相机的文件(旋转45度)
  • 来自具有非方形像素的相机的文件
  • 由旋转相机拍摄的图像。

在上述情况下,该功能改变图像输出大小的字段; 请注意,此更改不能再次重复。

int LibRaw :: dcraw_process(void)

该函数模拟dcraw中可用的后处理功能
调用LibRaw :: unpack()后调用;

除了以外,支持dcraw的整个功能(通过imgdata.params中的字段值设置

  • 黑帧减法
  • 处理坏像素。

该功能仅用于演示和测试目的; 假设其源代码将在大多数实际应用中用作关于RAW数据处理顺序的参考资料。

该函数根据错误代码约定返回一个整数:如果任何系统调用返回错误,则为正数;如果LibRaw中存在错误情况,则返回负数(来自LibRaw错误列表)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值