图像的对比度根据alpha改变,亮度根据beta改变。公式如下:
F(x)=f(x)*alpha+beta
代码如下:
int main()
{
Mat src = imread("shelock.jpg");
double alpha;
int beta;
printf("please input alpha and beta\n");
cin >> alpha >> beta;
Mat outsrc = Mat::zeros(src.size(), src.type());
for (int i = 0; i < src.rows; i++)
for (int j = 0; j < src.cols; j++)
for (int c = 0; c < 3; c++)
{
outsrc.at<Vec3b>(i, j)[c] = saturate_cast<uchar>(alpha*src.at<Vec3b>(i, j)[c] + beta);
}
imshow("original", src);
imshow("after deal", outsrc);
imwrite("shelock1.jpg", outsrc);
waitKey(0);
return 0;
}
原图如下:
处理之后图像如下: