【问题标题】:convert Flycapture2 Image to float*将 Flycapture2 图像转换为浮动*
【发布时间】:2015-06-01 04:41:38
【问题描述】:

我正在尝试将 Flycapture2 图像保存为浮点 EXR 图像。我从相机得到的像素格式是 YUV420,我需要将其转换为 RGB 才能保存。做这个的最好方式是什么?精度对此非常重要。

【问题讨论】:

  • 你读过Wikipedia page吗?
  • 精度是一个值的具体程度:秒比分钟更精确。准确度是给定精度下值的正确程度。如果你从 8 位 YUV420 开始,你只有这么多的精度开始。另一方面,相机接收到多少热噪声?即使相机的主体和照明完全静止,单个像素从一帧到下一帧的精度变化也可能超过 1/256。
  • 我已经阅读过,但问题是我不了解使用 FlyCapture2 捕获的图像的位顺序以进行转换。它甚至可以将像素格式设置为 RGB,但我为读取它并将其转换为 float* 而编写的代码似乎我没有很好地理解它。我也找不到关于 SDK 的非常好的文档。
  • 如果你把数据上传到某个地方,我可以看看。
  • ok 我发现我可以将其转换为 RGB,然后使用 SDK 将其保存为 tiff。我只是想确保图像是线性保存的。

标签: c++ rgb openexr flycapture


【解决方案1】:

您可以使用 Flycapture SDK 设置图像格式:

FlyCapture2::Format7ImageSettings fmt7ImageSettings;
FlyCapture2::Error error;

    fmt7ImageSettings.pixelFormat = FlyCapture2::PixelFormat::PIXEL_FORMAT_BGR;

    // Validate Format 7 settings  
    bool valid;
    error = cam.ValidateFormat7Settings(&fmt7ImageSettings, &valid, &fmt7PacketInfo);
    unsigned int num_bytes = fmt7PacketInfo.recommendedBytesPerPacket;


    // Set Format 7 (partial image mode) settings  
    error = cam.SetFormat7Configuration(&fmt7ImageSettings, num_bytes);
    if (error != FlyCapture2::ErrorType::PGRERROR_OK)
    {
        error.PrintErrorTrace();
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-09
    • 2013-03-21
    相关资源
    最近更新 更多