opencv-图像亮度与对比度
Posted 殇堼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了opencv-图像亮度与对比度相关的知识,希望对你有一定的参考价值。
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
int main(int argc, char** argv) {
Mat src, dst;
src = imread("D:/images/gaoyy.png");
if (!src.data) {
printf("could not load image...\\n");
return -1;
}
imshow("before", src);
// contrast and brigthtness changes
int height = src.rows;
int width = src.cols;
dst = Mat::zeros(src.size(), src.type());
float alpha = 1.1; //1.1 设置对比度
float beta = 1; //3 设置亮度
Mat m1;
src.convertTo(m1, CV_32F);
for (int row = 0; row < height; row++) {
for (int col = 0; col < width; col++) {
if (src.channels() == 3) {
float b = m1.at<Vec3f>(row, col)[0];// blue
float g = m1.at<Vec3f>(row, col)[1]; // green
float r = m1.at<Vec3f>(row, col)[2]; // red
// output
dst.at<Vec3b>(row, col)[0] = saturate_cast<uchar>(b*alpha + beta);
dst.at<Vec3b>(row, col)[1] = saturate_cast<uchar>(g*alpha + beta);
dst.at<Vec3b>(row, col)[2] = saturate_cast<uchar>(r*alpha + beta);
}
}
}
imshow("after", dst);
waitKey(0);
return 0;
}
对比度:1.1
设置亮度:1
对比度:0.9
设置亮度:-1
对比度:1.1
设置亮度:-1
以上是关于opencv-图像亮度与对比度的主要内容,如果未能解决你的问题,请参考以下文章
Android OpenCV之算数操作与调整图像的亮度和对比度
Android OpenCV之算数操作与调整图像的亮度和对比度
opencv4opencv视频教程 C++ 7手动调整图像亮度与对比度 g(i, j) = αf(i, j) + β(点操作与邻域操作概念)