#include
#include
using namespace cv;
using namespace std;
int main(int argc, char **argv) {
Mat src, dst;
// 加载图片
src = imread("../../picture/bg1.webp", 1);
if (!src.data) {
printf("No image data \n");
return -1;
}
namedWindow("src", WINDOW_AUTOSIZE);
imshow("src", src);
int rows = src.rows;
int cols = src.cols;
dst = Mat::zeros(src.size(), src.type());
float alpha = 1.2;
float beta = 10;
for (int row = 0; row < rows; row++) {
for (int col = 0; col < cols; col++) {
if (src.channels() == 3) {
float a = src.at(row, col)[0];
float b = src.at(row, col)[1];
float c = src.at(row, col)[2];
dst.at(row, col)[0] = saturate_cast(alpha * a + beta);
dst.at(row, col)[1] = saturate_cast(alpha * b + beta);
dst.at(row, col)[2] = saturate_cast(alpha * c + beta);
} else if (src.channels() == 1) {
float d = src.at(row, col);
dst.at(row, col) = saturate_cast(alpha * d + beta);
}
}
}
namedWindow("dst", WINDOW_AUTOSIZE);
imshow("dst", dst);
// 等待按键
waitKey(0);
return 0;
}