我无法更改图像的亮度。我的代码是:
float alpha = 1.0f;
int beta = -20; //brightness, negative for darkening(?)
image.convertTo(image, -1, alpha, beta);
无论我为alpha和beta选择什么值,图像都会变得更亮。
convertTo
功能是否也能使图像变暗?
似乎我可能不得不使用saturate_cast
,但我不确定在上面的例子中我会在哪里使用它。
答案 0 :(得分:2)
1)我刚刚验证过。它变暗了。你确定它真的变得更亮了吗?你是怎么检查的?
2)你不需要使用像convertTo这样的函数,因为你没有转换任何东西。更可读的方式是:
image = alpha*image + beta;
答案 1 :(得分:1)
问题不在于OpenCV或我的上述代码。 这是Android项目的一部分,通常ndk-build工具在我运行应用程序时编译了我的C ++文件。 不知怎的,我的Eclipse配置已被更改(损坏),并且我的C ++文件都没有被编译。 这就是为什么对我的代码进行各种编辑,对输出没有影响。在运行应用程序之前手动调用ndk-build之后,它现在可以正常工作。
我的Eclipse配置有什么问题是另一回事。