欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Qt5.14 与 OpenCV4.5 教程之图片增强效果

程序员文章站 2022-03-06 17:49:27
文章参考《qt5开发及实例(第4版)》陆文周 主编一、建立qt工程1、选择类别2、建立项目名称3、选择qt基类及修改名称4、选择编译器(这边两个都选择,生成两个debug文件)5、选择运行环境,生成文...

文章参考《qt5开发及实例(第4版)》陆文周 主编

一、建立qt工程

1、选择类别

Qt5.14 与 OpenCV4.5 教程之图片增强效果

2、建立项目名称

Qt5.14 与 OpenCV4.5 教程之图片增强效果

3、选择qt基类及修改名称

Qt5.14 与 OpenCV4.5 教程之图片增强效果

4、选择编译器(这边两个都选择,生成两个debug文件)

Qt5.14 与 OpenCV4.5 教程之图片增强效果

5、选择运行环境,生成文件夹

Qt5.14 与 OpenCV4.5 教程之图片增强效果Qt5.14 与 OpenCV4.5 教程之图片增强效果

生成的项目文件夹

Qt5.14 与 OpenCV4.5 教程之图片增强效果

6、将预先编译好的opencv4.5下路径f:\opencv4.5.0\opencv\buildmingw\install\x64\mingw\bin下所有文件复制到qt 上面两个文件夹内

Qt5.14 与 OpenCV4.5 教程之图片增强效果

7、在项目的.pro文件中添加语句

includepath += f:\opencv4.5.0\opencv\buildmingw\install\include
config(debug, debug|release): {
libs += f:\opencv4.5.0\opencv\buildmingw\install\x64\mingw\bin\libopencv_*d.dll
} else:config(release, debug|release): {
libs += -lf:\opencv4.5.0\opencv\buildmingw\install\x64\mingw\bin\
    -llibopencv_core450 \
    -llibopencv_highgui450 \
    -llibopencv_imgcodecs450 \
    -llibopencv_imgproc450 \
    -llibopencv_features2d450 \
-llibopencv_calib3d450
}

完成项目配置

二、界面设计

1、界面及属性设置

Qt5.14 与 OpenCV4.5 教程之图片增强效果

属性设置

序号

名称

类型

属性设置

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、在头文件中声明变量及设置公有函数,并生成对应定义函数

Qt5.14 与 OpenCV4.5 教程之图片增强效果

Qt5.14 与 OpenCV4.5 教程之图片增强效果

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设置界面,右键对比度滑动条,转到槽

Qt5.14 与 OpenCV4.5 教程之图片增强效果

完成槽函数

/***********************对比度滑动条拖动槽*********************************/
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 教程之图片增强的文章就介绍到这了,更多相关qt5.14 与 opencv4.5图片增强内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!