- 操作系统:ubuntu22.04
- OpenCV版本:OpenCV4.9
- IDE:Visual Studio Code
- 编程语言:C++11
算法描述
cv::cuda::gammaCorrection 是 OpenCV 的 CUDA 模块中用于执行伽马校正(Gamma Correction)的一个函数。伽马校正通常用于调整图像的亮度,使得图像在不同显示设备上能够正确显示。此函数可以在 GPU 上高效地执行该操作。
函数原型
cpp
void cv::cuda::gammaCorrection
(
InputArray src,
OutputArray dst,
bool forward = true,
Stream & stream = Stream::Null()
)
参数
- src:源图像(3通道或4通道,8位)。
- dst:目标图像。
- forward:布尔值,为 true 时表示进行前向伽马校正,为 false 时表示进行逆伽马校正。
- stream:用于异步版本的 CUDA 流。
代码示例
cpp
#include <opencv2/opencv.hpp>
#include <opencv2/cudaimgproc.hpp>
int main()
{
// 加载输入图像
cv::Mat src = cv::imread("/media/dingxin/data/study/OpenCV/sources/images/Lenna.png");
if (src.empty())
{
std::cerr << "无法加载图像!" << std::endl;
return -1;
}
// 将图像上传到 GPU
cv::cuda::GpuMat d_src, d_dst;
d_src.upload(src);
// 创建CUDA流
cv::cuda::Stream stream;
// 执行伽马校正
cv::cuda::gammaCorrection(d_src, d_dst, true, stream);
// 下载结果回主机
cv::Mat dst;
d_dst.download(dst);
// 显示结果
cv::imshow("Source Image", src);
cv::imshow("Gamma Corrected Image", dst);
cv::waitKey(0);
return 0;
}
运行结果
