gpt4 book ai didi

c++ - 如何使用 OpenCV 使用最小值和最大值调整亮度和对比度

转载 作者:太空宇宙 更新时间:2023-11-03 22:12:42 26 4
gpt4 key购买 nike

在 ImageJ 中,您可以使用最小值和最大值调整图像的亮度和对比度。您还可以使用 setMinAndMax() 宏函数。对话框如下所示:

ImageJ Brightness and Contrast dialog

它映射每个像素以适应最小值和最大值。

我正在尝试在 OpenCV (C++) 中做同样的事情。我可以使用 Mat::convertTo()alphabeta 参数更改对比度和亮度,但我不知道如何用最小值和最大值来做。

在我的例子中,我使用的是 12 位图像,因此像素值的范围是 0 到 4095。我不确定这是否重要。

最佳答案

你这样做。

首先,找到当前的最大值和最小值。

假设最暗和最亮分别为 80 和 220。现在您需要将这个范围 80..220 扩展到整个范围 0..4095。

因此,您从图像中的每个像素中减去 80,以向下移动到直方图左端的零,因此您的范围现在是 0..140。

现在您需要将每个像素乘以 4095/140 以将右端拉伸(stretch)到 4095。

实际上,您需要的公式是这样的:

newvalue = int((current value - darkest)*4095/(brightest-darkest))

关于c++ - 如何使用 OpenCV 使用最小值和最大值调整亮度和对比度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29980979/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com