opencv图像亮度调整
时间: 2023-07-09 21:50:51 浏览: 84
OpenCV提供了一些函数来调整图像的亮度和对比度。其中,最常用的是 `cv::convertScaleAbs` 函数。该函数可以缩放和平移图像像素值,并将结果转换为无符号8位整数格式,同时保持像素值之间的比例关系。
以下是一个简单的示例代码,演示如何使用 `cv::convertScaleAbs` 函数来调整图像的亮度:
```cpp
cv::Mat image = cv::imread("example.jpg");
cv::Mat brightened_image;
float alpha = 1.5; // 亮度增益
int beta = 50; // 亮度偏移量
cv::convertScaleAbs(image, brightened_image, alpha, beta);
cv::imshow("Original Image", image);
cv::imshow("Brightened Image", brightened_image);
cv::waitKey(0);
```
在上面的示例中,我们首先读取了一张图像 `example.jpg`,然后定义了一个亮度增益 `alpha` 和一个亮度偏移量 `beta`。接下来,我们使用 `cv::convertScaleAbs` 函数来调整图像的亮度,并将结果保存在 `brightened_image` 中。最后,我们使用 `cv::imshow` 函数来显示原始图像和调整后的图像。
需要注意的是,如果调整图像的亮度过高或过低,可能会导致图像像素值超出了 0 到 255 的范围,因此可能需要进行截断或归一化操作。
阅读全文