- 操作系统:ubuntu22.04
- OpenCV版本:OpenCV4.9
- IDE:Visual Studio Code
- 编程语言:C++11
算法描述
cv::cuda::gammaCorrection 是 OpenCV 的 CUDA 模块中用于执行伽马校正(Gamma Correction)的一个函数。伽马校正通常用于调整图像的亮度,使得图像在不同显示设备上能够正确显示。此函数可以在 GPU 上高效地执行该操作。
函数原型
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 流。
代码示例
#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;}// 将图像上传到 GPUcv::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;
}