opencv-c++降低曝光度
时间: 2024-02-13 16:59:08 浏览: 106
OpenCV实现绘制由摄像头采集视频的直方图(C++实现).zip
以下是使用OpenCV C++降低曝光度的示例代码:
```cpp
#include <opencv2/opencv.hpp>
int main() {
cv::Mat img = cv::imread("input.jpg");
cv::Mat dst;
float gamma = 0.5; // 设置gamma值,范围为0到1
cv::Mat lookUpTable(1, 256, CV_8U);
uchar* p = lookUpTable.ptr();
for (int i = 0; i < 256; i++) {
p[i] = cv::saturate_cast<uchar>(pow(i / 255.0, gamma) * 255.0);
}
cv::LUT(img, lookUpTable, dst);
cv::imshow("Input", img);
cv::imshow("Output", dst);
cv::waitKey(0);
return 0;
}
```
这段代码首先读取输入图像,然后通过设置gamma值来创建一个查找表(look-up table),该查找表将输入图像的像素值映射到降低曝光度后的像素值。最后,使用`cv::LUT`函数将输入图像应用于查找表,得到降低曝光度后的输出图像。
请注意,这里的输入图像文件名为"input.jpg",你需要将其替换为你自己的图像文件名。
阅读全文