OpenCV改变亮度和对比度

时间:2014-03-05 14:49:18

标签: c++ opencv computer-vision

我无法更改图像的亮度。我的代码是:

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

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

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

2 个答案:

答案 0 :(得分:2)

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

2)你不需要使用像convertTo这样的函数,因为你没有转换任何东西。更可读的方式是:

image = alpha*image + beta;

答案 1 :(得分:1)

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

我的Eclipse配置有什么问题是另一回事。