【问题标题】:CAP_PROP_WB_TEMPERATURE does not make any changes in OpenCVCAP_PROP_WB_TEMPERATURE 不会对 OpenCV 进行任何更改
【发布时间】:2021-12-11 12:49:12
【问题描述】:
   cap.open(0);
   cap.set(CAP_PROP_AUTO_WB, 0);
   cap.set(CAP_PROP_WB_TEMPERATURE, 10);

我尝试在上面设置 WhiteBalance,但捕获并没有改变我写入的温度。我错过了什么吗?

我从几个论坛中了解到,某些属性必须在某个区间内。像CAP_PROP_AUTO_EXPOSURE 应该期望两个值:0.75 自动曝光 On 和 0.25 作为自动曝光 OFF。 将自动曝光设置为 0.25 后,然后将曝光设置为您设置的任何值欲望。但我没有看到 wb 温度有类似的情况。

注意:

相机型号:DFM 27UR0135-ML - USB 3.0 彩板相机

我认为它不支持余额设置,因为下面的代码正在运行:

//WhiteBalance
Ptr<xphoto::WhiteBalancer> wb;
wb = xphoto::createLearningBasedWB();
wb ->balanceWhite(frame, frame);

但是我用自动白平衡没有得到很好的结果,这就是为什么我想手动更改温度、红色、蓝色等参数。

【问题讨论】:

  • 可能您的采集设备不支持白平衡设置?
  • 当我尝试使用这些代码进行自动平衡时它正在工作:Ptr<:whitebalancer> wb; wb = xphoto::createLearningBasedWB(); wb->balanceWhite(框架,框架);但我不想要自动平衡
  • 我认为您的自动白平衡不是在相机上计算的,而是在您的应用程序中计算的。
  • 正如documentation 所说:读/写属性涉及许多层。沿着这条链可能会发生一些意想不到的结果。有效行为取决于设备硬件、驱动程序和 API 后端。
  • 最好使用设备api,而不是opencv后端

标签: c++ opencv


【解决方案1】:

自动白平衡在 1 时关闭,在 3 时打开。 cap.set(CAP_PROP_AUTO_WB, 1);

【讨论】:

    猜你喜欢
    • 2012-03-30
    • 1970-01-01
    • 2021-11-04
    • 2018-01-11
    • 2023-01-14
    • 2023-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多