OpenCV改变亮度和对比度



我在更改图像亮度时遇到问题。我的代码是:

float alpha = 1.0f;
int beta = -20; //brightness, negative for darkening(?)
image.convertTo(image, -1, alpha, beta);

无论我为 alpha 和 beta 选择什么值,图像都会变得更亮。convertTo功能是否也应该使图像变暗?

似乎我可能不得不使用 saturate_cast ,但我不确定在上面的示例中我会在哪里使用它。

1)我刚刚验证了。它被适当地变暗了。你确定它真的变得更亮了吗?你怎么检查?

2)您不需要使用转换到之类的功能,因为您没有转换任何内容。更具可读性的方式是:

image = alpha*image + beta;

问题不在于OpenCV或我的上述代码。这是 Android 项目的一部分,通常 ndk-build 工具在我运行应用程序时编译了我的C++文件。不知何故,我的 Eclipse 配置被更改(损坏),并且我的C++文件都没有被编译。这就是为什么对我的代码进行各种编辑对输出没有影响的原因。在运行应用程序之前手动调用 ndk-build 后,它现在可以正常工作。

我的 Eclipse 配置出了什么问题,这是另一回事。

最新更新