【发布时间】: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后端