C++ OpenCV更改亮度和对比度

C++ OpenCV更改亮度和对比度,c++,opencv,computer-vision,C++,Opencv,Computer Vision,我无法更改图像的亮度。我的代码是: float alpha = 1.0f; int beta = -20; //brightness, negative for darkening(?) image.convertTo(image, -1, alpha, beta); 无论我为alpha和beta选择什么值,图像都会变得更亮。 convertTo功能是否也可以使图像变暗 似乎我必须使用饱和投射,但我不确定在上面的示例中我将在哪里使用它。1)我刚刚验证过。它完全变黑了。你确定它真的变亮了吗?你怎

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

float alpha = 1.0f;
int beta = -20; //brightness, negative for darkening(?)
image.convertTo(image, -1, alpha, beta);
无论我为alpha和beta选择什么值,图像都会变得更亮。
convertTo
功能是否也可以使图像变暗

似乎我必须使用饱和投射,但我不确定在上面的示例中我将在哪里使用它。

1)我刚刚验证过。它完全变黑了。你确定它真的变亮了吗?你怎么查到的

2) 您不需要使用convertTo之类的函数,因为您不需要转换任何内容。更具可读性的方法是:

image = alpha*image + beta;

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


我的Eclipse配置有一个不同的问题。

展示了如何使用
saturate\u cast
。还请注意,此示例是在像素基础上执行bri/con操作。您的
图像
是什么数据类型?但是如果我们的图像已经是
RGBA
格式,那么我们还需要处理alpha呢?