在qt程序中,给我一个修改图片亮度和对比度的算法函数
时间: 2024-02-20 21:58:08 浏览: 24
好的,以下是一个简单的修改图片亮度和对比度的算法函数,使用 Qt 的 QImage 类实现:
```cpp
QImage adjustBrightnessContrast(const QImage& image, int brightness, int contrast)
{
QImage resultImage(image.size(), QImage::Format_ARGB32);
double contrastFactor = (259.0 * (contrast + 255.0)) / (255.0 * (259.0 - contrast));
double brightnessFactor = brightness / 255.0;
for(int y = 0; y < image.height(); y++)
{
for(int x = 0; x < image.width(); x++)
{
QColor color(image.pixel(x, y));
int red = qBound(0, int(contrastFactor * (color.red() - 128) + 128 + 255 * brightnessFactor), 255);
int green = qBound(0, int(contrastFactor * (color.green() - 128) + 128 + 255 * brightnessFactor), 255);
int blue = qBound(0, int(contrastFactor * (color.blue() - 128) + 128 + 255 * brightnessFactor), 255);
resultImage.setPixel(x, y, qRgb(red, green, blue));
}
}
return resultImage;
}
```
其中,brightness 表示亮度调整值(正值表示增加亮度,负值表示降低亮度),contrast 表示对比度调整值(正值表示增加对比度,负值表示降低对比度)。函数会返回一个调整过亮度和对比度的 QImage 对象。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)