我正在开发一个 Windows 独立应用程序,它需要拍照然后进行编辑。
对于捕获和编辑,我使用 OpenCV。
为了在编辑过程中保持一致的行为,我想禁用自动曝光和自动白平衡。
我设法使用 OpenCV 控制曝光,但无法控制白平衡。不过,当我使用 DSHOW 面板时,我可以更改白平衡。
要打开 DSHOW 面板,我使用以下命令:
cam.set(cv2.CAP_PROP_SETTINGS, 1)
Run Code Online (Sandbox Code Playgroud)
从 OpenCV 中,我可以读取白平衡值设置,但无法编辑它(当我尝试执行此操作时set(...)返回)。False我什至无法读取自动白平衡设置。
Auto WB -1.0
XI Auto WB -1.0
XI Manual WB -1.0
WB Temp -1.0
WB Blue U 5415.0
WB Red V -1.0
Run Code Online (Sandbox Code Playgroud)
根据我在网上读到的内容,我们不能过度依赖这个 API,因为大多数相机不遵循规范。
我想知道 DSHOW 面板能做什么而 OpenCV 不能?
这是完整的脚本:
Auto WB -1.0
XI Auto WB -1.0
XI Manual WB -1.0
WB Temp -1.0
WB Blue U 5415.0
WB Red V -1.0
Run Code Online (Sandbox Code Playgroud) 我真的不知道如何使用bash,我有一个问题.我通常使用python所以我不知道如何没有列表.如何在不删除默认值的情况下在数组中添加值.
myArray=(5 6 13 14)
Run Code Online (Sandbox Code Playgroud)
例如,我想在索引2处添加9,我想得到这个:
myArray=(5 6 9 13 14)
Run Code Online (Sandbox Code Playgroud)
而不是这个:
myArray=(5 6 9 14)
Run Code Online (Sandbox Code Playgroud)
显然,做myArray[2]=9不起作用.我可以添加它并将其他所有内容从1移到左边,但我正在尝试做一些优化的事情,所以如果有一个没有循环的解决方案,我想知道它:)
我是C++的新手,我正在尝试实现一个向后循环,我创建了非常好的解决方案,但我想知道我的版本不正确并进行无限循环.
这是我创建的一个工作版本(我不明白我们如何减少i条件......):
for (unsigned i = size ; i-- > 0 ; )
{
// do stuff with i
}
Run Code Online (Sandbox Code Playgroud)
这是我写的一个版本,它可以工作,但不会降到0(这种方式对我来说似乎更合乎逻辑):
for (unsigned i = size-1 ; i > 0 ; i--)
{
// do stuff with i
}
Run Code Online (Sandbox Code Playgroud)
如果我说例如n=10,如果我print i在循环中,我会得到这个:
9
8
7
6
5
4
3
2
1
Run Code Online (Sandbox Code Playgroud)
这里的版本对我来说更合乎逻辑,应该归零,但是提供了一个无限循环.
for (unsigned i = size-1 ; i >= 0 ; i--)
{
// do stuff with i
}
Run Code Online (Sandbox Code Playgroud)
有人可以向我解释为什么最后一个版本不起作用,最好的选择是什么?