opencv处理图像对比度和亮度
2016-12-11 14:39
176 查看
公式:g(x) = af(x) + b, 其中:
f(x)表示原始图像像素值, g(x)表示处理后图像像素值。a > 0, a,b分别控制图像的对比度和亮度。
具体代码如下:
说明:saturate_cast防止数据溢出, 若值小于0,则结果为0, 若值大于255,则结果为255.
参考:
docs.opencv.org/2.4.13/doc/tutorials/tutorials.html
learning opencv
f(x)表示原始图像像素值, g(x)表示处理后图像像素值。a > 0, a,b分别控制图像的对比度和亮度。
具体代码如下:
void ChangeContrastAndBrightness(Mat& myImage) { Mat new_image = Mat::zeros(myImage.size(), myImage.type()); //initialize values std::cout<<" Basic Linear Transforms "<<std::endl; std::cout<<"-------------------------"<<std::endl; std::cout<<"* Enter the alpha value [1.0-3.0]: "; std::cin>>alpha; std::cout<<"* Enter the beta value [0-100]: "; std::cin>>beta; for (int y = 0;y < myImage.rows;y++) { for (int x = 0;x < myImage.cols;x++) { for (int c = 0; c < 3;c++) { new_image.at<Vec3b>(y, x)[c] = saturate_cast<uchar>(alpha*(myImage.at<Vec3b>(y, x)[c]) + beta); //防溢出 } } } namedWindow("original image", 1); namedWindow("new image", 1); imshow("original image", myImage); imshow("new image", new_image); waitKey(0); }
说明:saturate_cast防止数据溢出, 若值小于0,则结果为0, 若值大于255,则结果为255.
参考:
docs.opencv.org/2.4.13/doc/tutorials/tutorials.html
learning opencv
相关文章推荐
- OpenCV之六 创建Trackbar 图像对比度、亮度值调整
- Opencv图像对比度和亮度的调整-滚动条
- 基础学习笔记之opencv(12):改变图像对比度和亮度
- OpenCV 图像对比度和亮度调节
- python3-opencv库(4)--图片像素运算,利用加权叠加调节图像对比度和亮度
- Opencv图像对比度和亮度的调整
- android使用opencv之亮度与对比度处理
- opencv 图像对比度及亮度调整
- opencv 降低图像亮度 + 添加噪声处理
- 图像对比度与亮度调整算法实现(Python&OpenCV)
- C#图片处理之:亮度和对比度的校正
- 图像的处理(一)----灰度图像像素颜色亮度处理
- 学习FotoVision 进行C# colorMatrix 对图片的处理 : 亮度调整 抓屏 翻转 随鼠标画矩形
- OpenCV学习——图像的形态处理学
- OpenCV学习——物体跟踪的粒子滤波算法实现之命令行参数处理
- OPENCV用户手册之图像处理部分(之四):滤波器与色彩转换(中文翻译)
- OpenCV学习——图像亮度、对比度调节
- 学习FotoVision 进行C# colorMatrix 对图片的处理 : 亮度调整 抓屏 翻转 随鼠标画矩形
- OpenCV 下面的图像亮度变换 Intensity transformation
- OpenCV学习——错误处理机制