与尼康自己的转换器相比,Libraw 让我的图像太亮了

Posted

技术标签:

【中文标题】与尼康自己的转换器相比,Libraw 让我的图像太亮了【英文标题】:Libraw is making my images too bright compared to nikons own converter 【发布时间】:2014-03-12 15:00:36 【问题描述】:

似乎尼康自己的工具和photoshop可以选择在拍摄时打开图像。

但是使用 libraws dcraw 处理器我无法解决这个问题。

这是我的实现。

CV_EXPORTS_W int load_image(const char * path, cv::Mat & output)



    LibRaw RawProcessor;

    int ret;

#define imgD RawProcessor.imgdata

    imgD.params.use_camera_wb = 1;
    imgD.params.use_auto_wb = 0;

    if ((ret = RawProcessor.open_file(path)) != LIBRAW_SUCCESS)
    
        fprintf(stderr, path, libraw_strerror(ret));
        return -1;
    
    if ((ret = RawProcessor.unpack()) != LIBRAW_SUCCESS)
    

        return -1;
    

    int check = RawProcessor.dcraw_process();
    libraw_processed_image_t *image_ptr = RawProcessor.dcraw_make_mem_image(&check);
                
    output = cv::Mat(cv::Size(image_ptr->width, image_ptr->height), CV_8UC3, image_ptr->data, cv::Mat::AUTO_STEP);
    cv::cvtColor(output, output, 4);

更新了一张图片以显示我在说什么: 图像正在以某种方式标准化。如果原始图像包含大面积的浅色材料,则整个图像会变得更暗。我希望能够只读取原始图像数据并在 opencv 中以我自己的方式对其进行规范化或处理。

更新

基于 cmets,我调整了亮度,但现在像素颜色值出现问题,最好在这里看到:

左图是libraw的结果,右图是viewnx。 libraw 图像中似乎有一些噪点颜色。

【问题讨论】:

【参考方案1】:

原始数据存储在 LibRaw::rawdata.raw_image[] 数组中。这些值“尽可能 RAW”,没有应用黑色减法和/在 de-bayer(去马赛克)上。

要访问这些数据,您需要调用 LibRaw::open_file() 和 LibRaw::unpack。

此外,您可以从 LibRaw::dcraw_process() 上的数据处理中排除一些步骤:

 imgdata.params.no_interpolation=1 disables demosaic
 imgdata.params.no_auto_scale=1 disables scaling from camera maximum to 64k
 imgdata.params.no_auto_bright=1 disables auto brighten

【讨论】:

尝试一下,如果可行,请标记为答案。谢谢 使用这些后图像几乎全黑 3.与您添加参数的问题中的代码相同。如果不清楚的话,cvtColor 也只是对 RGB 进行 BGR。 这是有道理的,因为去马赛克被禁用了。目标是使图像看起来像拍摄的那样(效果中的缩略图,以及 nikons 自己的工具如何提取 jpgs) “完全按照拍摄”是原始数据。 JPEG经过后处理(白平衡,去马赛克,应用色调曲线,从相机空间转换为sRGB或其他颜色的颜色)。 LibRaw 默认不使用任何相机设置:WB 是日光,亮度调整为 1% 饱和像素。 此时我正在尝试提取 RAW 数据并在 openCV 中进行 cv::COLOR_BayerBG2RGB 转换,这样我就知道没有白平衡,色调曲线标准化已经完成。我们从一个平面拍摄具有 70% 重叠的图像,我想根据相邻图像进行这些更改,而不仅仅是图像的内部信息。有点想进行图像拼接,然后应用所有色调曲线和白平衡更改。

以上是关于与尼康自己的转换器相比,Libraw 让我的图像太亮了的主要内容,如果未能解决你的问题,请参考以下文章

尼康D7200手动挡无法对焦,怎么解决?

更好的 .NET SDK 支持——佳能还是尼康? [关闭]

索尼A7R IV和尼康Z6 II 参数对比

尼康D型镜头手动对焦应该如何操作?

尼康D7200录视频格式怎么设置?

与 Photoshop 相比,OpenCV Warpaffine 的质量较低