小编Kev*_*n M的帖子

为什么DSHOW可以控制白平衡而OpenCV不能?

我正在开发一个 Windows 独立应用程序,它需要拍照然后进行编辑。

对于捕获和编辑,我使用 OpenCV。

为了在编辑过程中保持一致的行为,我想禁用自动曝光和自动白平衡。

我设法使用 OpenCV 控制曝光,但无法控制白平衡。不过,当我使用 DSHOW 面板时,我可以更改白平衡。

使用 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)

python webcam opencv

5
推荐指数
1
解决办法
4108
查看次数

在给定索引处添加值而不删除

我真的不知道如何使用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移到左边,但我正在尝试做一些优化的事情,所以如果有一个没有循环的解决方案,我想知道它:)

arrays bash

4
推荐指数
1
解决办法
34
查看次数

难以理解的无限后向循环C++

我是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)

有人可以向我解释为什么最后一个版本不起作用,最好的选择是什么?

c++ for-loop

1
推荐指数
1
解决办法
91
查看次数

标签 统计

arrays ×1

bash ×1

c++ ×1

for-loop ×1

opencv ×1

python ×1

webcam ×1