文章参考《qt5开发及实例(第4版)》陆文周 主编
一、建立qt工程
1、选择类别
2、建立项目名称
3、选择qt基类及修改名称
4、选择编译器(这边两个都选择,生成两个debug文件)
5、选择运行环境,生成文件夹
生成的项目文件夹
6、将预先编译好的opencv4.5下路径f:opencv4.5.0opencvbuildmingwinstallx64mingwbin下所有文件复制到qt 上面两个文件夹内
7、在项目的.pro文件中添加语句
includepath += f:opencv4.5.0opencvbuildmingwinstallinclude config(debug, debug|release): { libs += f:opencv4.5.0opencvbuildmingwinstallx64mingwbinlibopencv_*d.dll } else:config(release, debug|release): { libs += -lf:opencv4.5.0opencvbuildmingwinstallx64mingwbin -llibopencv_core450 -llibopencv_highgui450 -llibopencv_imgcodecs450 -llibopencv_imgproc450 -llibopencv_features2d450 -llibopencv_calib3d450 }
完成项目配置
二、界面设计
1、界面及属性设置
属性设置
序号
名称
类型
属性设置
①
viewlabel
qlabel
frameshape:box
frameshadow:sunken
②
contrastverticalslider
qslider
maximum:100
value:33
tickpostion:ticksbelow
③
brightnessverticalslider
qslider
maximum:100
④
contrastlabel
qlabel
text:对比度
⑤
brightlabel
qlabel
text:亮度
2、在头文件中声明变量及设置公有函数,并生成对应定义函数
3、完成各公有函数功能代码
/**********************界面初始化**************************/ void pictureenhance::initmainwindow() { qstring imgpath = "d:\qt\qtopencvenhance\lena.jpg"; //本地路径(图片直接放在项目目录下) mat imgdata = imread(imgpath.tolatin1().data()); //读取图片数据 cvtcolor(imgdata,imgdata, color_bgr2rgb); //图片格式转换 myimg = imgdata; myqimg = qimage((const unsigned char*)(imgdata.data), imgdata.cols, imgdata.rows, qimage::format_rgb888); imgshow(); } /**********************处理图片*****************************/ void pictureenhance::imgproc(float con, int bri) { mat imgsrc = myimg; mat imgdst = mat::zeros(imgsrc.size(),imgsrc.type()); //初始生成空的零像素阵列 imgsrc.convertto(imgdst,-1,con,bri); myqimg = qimage((const unsigned char*)(imgdst.data), imgdst.cols,imgdst.rows, qimage::format_rgb888); imgshow(); } /**********************显示图片******************************/ void pictureenhance::imgshow() { ui->viewlabel->setpixmap(qpixmap::fromimage(myqimg.scaled(ui->viewlabel->size(),qt::keepaspectratio))); ui->viewlabel->setscaledcontents(true); }
4、滑动条实现功能
转到uil设置界面,右键对比度滑动条,转到槽
完成槽函数
/***********************对比度滑动条拖动槽*********************************/ void pictureenhance::on_contrastverticalslider_slidermoved(int position) { imgproc(position / 33.3,0); } /***********************对比度滑动条值改变槽***************************/ void pictureenhance::on_contrastverticalslider_valuechanged(int value) { imgproc(value / 33.3,0); } /****************************亮度滑动条拖动槽*****************************/ void pictureenhance::on_brightnessverticalslider_slidermoved(int position) { imgproc(1.0,position); } /**************************亮度滑动条值改变槽************************/ void pictureenhance::on_brightnessverticalslider_valuechanged(int value) { imgproc(1.0,value); }
运行效果:
到此这篇关于qt5.14 与 opencv4.5 教程之图片增强的文章就介绍到这了,更多相关qt5.14 与 opencv4.5图片增强内容请搜索<计算机技术网(www.ctvol.com)!!>以前的文章或继续浏览下面的相关文章希望大家以后多多支持<计算机技术网(www.ctvol.com)!!>!
需要了解更多c/c++开发分享Qt5.14 与 OpenCV4.5 教程之图片增强效果,都可以关注C/C++技术分享栏目—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/965380.html