本文关键讲讲怎样改变图片对比度和亮度,其实就是图片像素值线性改变了而已,对比度对应线性改变系数,亮度对应其常量。参考资料为opencv自带tutiol及其code. 开发环境:+++. 试验功效: 单击Openimage按钮,在电脑中打开一张图片并显示出来。拖动Contrast滑动条,改变对比度值,能够看到对比度值改变过程在滑动条下方显示,左边图片对应为其对比度改变后效果。拖动Brightness滑动条,改变亮度值,以看到亮度值改变过程在滑动条下方显示,左边图片对应为其亮度改变后效果。点击Close按钮,退出程序。试验说明: 本试验利用原理是对图片中每个像素点值进行变换,其变换公式为: g(i,j)=contrast*f(i,j)+brightness. 其中g(i,j)为变换后第i行第j列像素点值,f(i,j)为变换前对应点值。上面公式实现是利用opencv自带函数,Mat::converTo(),第1个参数为输出图像;第1个参数为输出图像深度,假如和原图像相同,则设置为-1;第3个参数为对比度值;第4个参数为亮度值。当在TextBrowser中进行图片显示时,假如需要让显示图片窗口自适应图片大小,可采取QTextBrowser下setFixedWidth()和setFixedHeight()函数来设置窗口尺寸,其参数是从图片中获取。当然这个设置窗口长和宽已经包含了右边和下边滚动条,所以给参数时候需要把这2者考虑进去。 要对整个窗口背景该色,且不改变其上面控件背景色,则这时需用QPalette类。且时需用Window作为背景色角色;假如用Base作为背景色角色话,那么它只会改变QTextEidt类及其派生类背景色;假如用seStyleSheet,其用background-color话,那么它会把其上面控件背景色全改了,且对应子窗口也全部改了。在Qt中,将1个数值a转换成文本,可采取,tr(“%1”).arg(a). 试验结果: 原图: 只改变对比度,: 只改变亮度,值为80效果图: 同时改变,,亮度值为80效果图: 试验关键部分代码及注释(附录有工程code下载链接):#include""#include""#include<QFileDialog>#include<iostream>usingnamespacestd;MainWindow::MainWindow(QWidget*parent):QMainWindow(parent),ui(newUi::MainWindow){ui->setupUi(this);contrast=;brightness=;ui->textBrowser->verticalScrollBar()->setFixedHeight(25);ui->textBrowser->horizontalScrollBar()->setFixedWidth(25);//ui->textBrowser->verticalScrollBar()->hide();//ui->textBrowser->horizontalScrollBar()->hide();//改变整个窗体颜色QPalettepal_win;//(QPalette::Base,Qt::black);//(QPalette::Window,Qt::black);//这句改变是除掉TextBrowser和Button等多种后背景MainWindow::setPalette(pal_win);//MainWindow::setStyleSheet("background-color:black");//这么整个窗口全部变黑了,且其子窗口背景也是黑//改变button颜色QPalettepal_btn;(QPalette::ButtonText,Qt::green);(QPalette::Button,Qt::black);ui->closeButton->setPalette(pal_btn);ui->openButton->setPalette(pal_btn);//改变label颜色QPalettepal_label;(QPalette::WindowText,Qt::green);(QPalette::Base,Q
2021年基础学习笔记之opencv改变图像对比度和亮度 来自淘豆网m.daumloan.com转载请标明出处.