基础学习笔记之opencv(12):改变图像对比度和亮度.doc_第1页
基础学习笔记之opencv(12):改变图像对比度和亮度.doc_第2页
基础学习笔记之opencv(12):改变图像对比度和亮度.doc_第3页
基础学习笔记之opencv(12):改变图像对比度和亮度.doc_第4页
基础学习笔记之opencv(12):改变图像对比度和亮度.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文主要讲讲怎样改变图片的对比度和亮度,其实就是图片像素值线性变化了而已,对比度对应线性变化的系数,亮度对应其常量。参考资料为opencv自带tutiol及其code.开发环境:ubuntu12.04+opencv2.4.2+Qt4.8.2+QtCreator2.5.实验功能:单击Open image按钮,在电脑中打开一张图片并显示出来。拖动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).实验结果:原图:只改变对比度,值为3.1效果图:只改变亮度,值为80效果图:同时改变,对比度值为3.1,亮度值为80效果图:实验主要部分代码及注释(附录有工程code下载链接):#include mainwindow.h#include ui_mainwindow.h#include #include using namespace std;MainWindow:MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui:MainWindow) ui-setupUi(this); contrast = 1.0; brightness = 1.0; ui-textBrowser-verticalScrollBar()-setFixedHeight( 25 ); ui-textBrowser-horizontalScrollBar()-setFixedWidth( 25 ); / ui-textBrowser-verticalScrollBar()-hide(); / ui-textBrowser-horizontalScrollBar()-hide(); /改变整个窗体的颜色 QPalette pal_win; / pal_win.setColor( QPalette:Base, Qt:black );/这句改变的只是TextBrowser的背景 pal_win.setColor( QPalette:Window, Qt:black );/这句改变的是除掉TextBrowser和Button等各种后的背景 MainWindow:setPalette( pal_win );/ MainWindow:setStyleSheet( background-color:black );/这样整个窗口都变黑了,且其子窗口背景也是黑的 /改变button的颜色 QPalette pal_btn; pal_btn.setColor( QPalette:ButtonText, Qt:green ); pal_btn.setColor( QPalette:Button, Qt:black ); ui-closeButton-setPalette( pal_btn ); ui-openButton-setPalette( pal_btn ); /改变label的颜色 QPalette pal_label; pal_label.setColor( QPalette:WindowText, Qt:green ); pal_label.setColor( QPalette:Base, Qt:black ); ui-contrastLabel-setPalette( pal_label ); ui-brightnessLabel-setPalette( pal_label ); ui-label1-setPalette( pal_label ); ui-label2-setPalette( pal_label );MainWindow:MainWindow() delete ui;void MainWindow:on_openButton_clicked() QString img_name = QFileDialog:getOpenFileName( this, Open image, ./change_value, tr(Image Files(*.png *bmp *jpg *jpeg) ); img = imread( img_name.toAscii().data() ); if( !img.empty() ) ui-textBrowser-clear(); ui-textBrowser-append( tr().arg(img_name) ); / ui-textBrowser-setFixedWidth( img.cols ); / ui-textBrowser-setFixedHeight( img.rows ); ui-textBrowser-setFixedWidth( img.cols+ui-textBrowser-verticalScrollBar()-width() );/其实这里面的计算也不是特别准 ui-textBrowser-setFixedHeight( img.rows+ui-textBrowser-horizontalScrollBar()-height() ); /void MainWindow:on_closeButton_clicked() close();void MainWindow:on_contrastScrollBar_valueChanged(int value) contrast = (double)value/10;/将其转换成010之间的小数,间隔为0.1 img.convertTo( img_change, -1, contrast, brightness ); imwrite( ./change_value/change_img.jpg, img_change ); ui-textBrowser-clear(); ui-textBrowser-append( ); ui-label1-clear(); ui-label1-setText( tr(%1).arg(contrast) );void MainWindow:on_brightScrollBar_valueChanged(int value) brightness = (double)value; img.convertTo( img_change, -1, contrast, brightness ); imwrite( ./change_value/change_img.jpg, img_chan

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论