Qt里添加OpenCV库
基于qt+opencv数字图像处理实验一般步骤

基于qt+opencv数字图像处理实验一般步骤基于QtCreator+openCV的数字图像处理实验一般步骤一、新建Qt Widgets Application项目二、设计应用界面1.拖放所需控件2.应用布局3.修改界面各个对象的文本和名称三、复制图像类型转换类单元文件到项目文件夹Imageconversion是用于Qt图像对象类型与OpenCV图像对象类型直接的转换,是整理自网络,把这两个文件复制到项目文件夹下,方便使用。
四、在构建文件和有关文件头包含openCV库1. 在项目文件“项目名称.pro”文件(*.pro 基本上是构建工程项目时由Qt 处理的第一个文件,这个文件称为Qt 项目文件,一个名为“qmake”的内部Qt 程序负责处理该文件最后添加如下指令语句:include(E:\openCV\opencv331.pri)看起来是这样的:其中opencv331.pri的文件含openCV包含路径和库文件路径,可以把这些路径信息直接一一写在Qt项目文件中,但是比较麻烦。
把这些路径信息统一写在一个文件里面,方便使用。
这个需要根据用户的实际安排情况调整,我的opencv331.pri文件内容如下:INCLUDEPATH+=E:\openCV\opencv331build\install\include LIBS+=E:\openCV\opencv331build\install\x86\mingw\bin\li bopencv_core331.dllLIBS+=E:\openCV\opencv331build\install\x86\mingw\bin\libop encv_highgui331.dll LIBS+=E:\openCV\opencv331build\install\x86\mingw\bin\libopenc v_imgcodecs331.dllLIBS+=E:\openCV\opencv331build\install\x86\mingw\bin\li bopencv_imgproc331.dll LIBS+=E:\openCV\opencv331build\install\x86\mingw\bin\libopenc v_features2d331.dllLIBS+=E:\openCV\opencv331build\install\x86\mingw\bin\li bopencv_calib3d331.dll 2.在头文件中包含opencv、图像数据类型转换以及常用Qt控件#include//Qt图像类,适用于屏显#include//打开文件对话框#include//文件信息类#include//用于管理2D图形对象#include//Qt字符串类#include//弹出窗口类#include//openCV头文件#include//OpenCV头文件#include"imageconversion.h"//图像数据类型转换using namespace cv;五、在mainwindow.h声明私有数据成员1. 与图像读、写和显示有关的几个数据成员:QGraphicsScene sceneL,sceneR,scene;//与QgraphicsView配合显示图像QPixmap pixmapL,pixmapR,pixmap; //用于读、写图像//以后参数根据需要定义double a,b,c,d,nc,r,threshold;enumPointOperation{None=0,LinearExpand,NonLinearExpand,GrayIn vert,BitWise} pointOperation;int fusionOperation;void rotate_arbitrarily_angle(cv::Mat&src,cv::Mat&dst,float angle);2. 在构造函数关联场景和图像显示对象ui->srcGraphicsView->setScene(&srcScene);//关联场景和图形显示对象ui->dstGraphicsView->setScene(&dstScene);如下图:六、定义动作控件槽函数1.打开或关闭图像文件if(ui->openButton->text()=="关闭图像"){sceneL.clear();ui->openButton->setText("打开图像");ui->saveButton->setEnabled(false);return;}QString fileName=QFileDialog::getOpenFileName( this,"打开图像",QDir::currentPath(),"Images(*.png*.bmp*.jpg*.tif)");if(!fileName.isNull()){QFileInfo file(fileName);if(pixmapL.load(file.absoluteFilePath())){ sceneL.clear();//清除原有图像信息sceneL.addPixmap(pixmapL);ui->openButton->setText("关闭图像");ui->saveAsButton->setEnabled(false);}}return;2.保存图像QString fileName=QFileDialog::getSaveFileName( this,"保存图像",QDir::currentPath(),"Images(*.png*.bmp*.jpg*.tif)");if(pixmap.save(fileName,0,100)) QMessageBox::information(this,tr("OK"),tr("保存成功"));elseQMessageBox::information(this,tr("NG"),tr("保存失败"));3.图像处理代码,以加法点运算为例fusionOperation=ui->fusionBox->currentIndex();if(fusionOperation==0){ui->resulLable->setText("出错啦!");QMessageBox::information(this,tr("错误"),tr("请选择算法"));return;}//图像类型转换ImageConversion imgConversion;cv::Mat mat0=imgConversion.QPixmapToCvMat(pixmapL);cv::Mat mat,img1,img2,img;cvtColor(mat0,mat,CV_BGR2GRAY);//mat1,8位无符号数图像mat.convertTo(img1,CV_64FC1);//double类型图像,0~255,图像1 mat0=imgConversion.QPixmapToCvMat(pixmapR);cvtColor(mat0,mat,CV_BGR2GRAY);//mat.convertTo(img2,CV_64FC1);//double类型图像,0~255,图像2 switch(fusionOperation){case1:img=0.5*img1+0.5*img2;ui->resulLable->setText("五五开融合结果图像");break;case2:img=0.3*img1+0.7*img2;ui->resulLable->setText("三七开融合结果图像");break;default:break;}img.convertTo(mat,CV_8UC1);pixmap=imgConversion.cvMatToQPixmap(mat);scene.clear();scene.addPixmap(pixmap);ui->saveAsButton->setEnabled(true);4.点运算处理代码pointOperation=(enumPointOperation)ui->pointOperationBox->currentIndex();if(pointOperation==None){ui->resulLable->setText("出错啦!");QMessageBox::information(this,tr("错误"),tr("请选择算法"));return;}ImageConversion imgConversion;cv::Mat mat0=imgConversion.QPixmapToCvMat(pixmapL);cv::Mat mat1,img1;cvtColor(mat0,mat1,CV_BGR2GRAY);//mat1,8位无符号数图像mat1.convertTo(img1,CV_64FC1);//double类型图像switch(pointOperation){case LinearExpand://ui->aEdit->setValidator(newQDoubleValidator(0.0,1.0,2,this));a=ui->aEdit->text().toDouble();b=ui->bEdit->text().toDouble();c=ui->cEdit->text().toDouble();d=ui->dEdit->text().toDouble();for(int i=0;i<img1.rows;i++){< p="">double*pixrow=img1.ptr(i);for(int j=0;j<img1.cols;j++){< p="">if(pixrow[j]<=a*255)pixrow[j]=c*255;else if(pixrow[j]>=b*255)pixrow[j]=d*255;elsepixrow[j]=c*255+(pixrow[j]-a*255)/(b-a)*(d-c)*255;/*********************************************if(img1.at(i,j)<=a*255)img1.at(i,j)=c*255;else if(img1.at(i,j)>=b*255)img1.at(i,j)=d*255;elseimg1.at(i,j)=c+(img1.at(i,j)-a*255)/(b-a)*(d-c)*255;*************************************************************** ******/}}ui->resulLable->setText("线性扩展结果图像");break;case NonLinearExpand:nc=ui->ncEdit->text().toDouble();cv::log(img1/255+1.0,mat0);img1=mat0*nc*255;ui->resulLable->setText("非线性扩展结果图像");break;case GrayInvert:img1=255-mat1;ui->resulLable->setText("灰度倒置结果图像");break;case BitWise:threshold=ui->thresholdEdit->text().toDouble();for(int i=0;i<img1.rows;i++){< p="">double*pixrow=img1.ptr(i);for(int j=0;j<img1.cols;j++){< p="">if(pixrow[j]>=threshold*255)pixrow[j]=255;elsepixrow[j]=0;}}ui->resulLable->setText("二值化结果图像");break;default:break;}img1.convertTo(mat1,CV_8UC1);pixmap=imgConversion.cvMatToQPixmap(mat1);scene.clear();scene.addPixmap(pixmap);ui->saveAsButton->setEnabled(true);5.图像旋转代码/************************************************************** *****以下代码来自csdn上“笨笨的小棒棒”的个人博客:*https:///u013263891/article/details/8393247 9*在此对作者表示感谢!*************************************************************** **/voidMainWindow::rotate_arbitrarily_angle(cv::Mat&src,cv::Mat&dst,fl oat angle) {float radian=(float)(angle/180.0*CV_PI);//填充图像int maxBorder=(int)(max(src.cols,src.rows)* 1.414);//即为sqrt(2)*max int dx=(maxBorder-src.cols)/2;int dy=(maxBorder-src.rows)/2;copyMakeBorder(src,dst,dy,dy,dx,dx,BORDER_CONSTANT);//旋转Point2f center((float)(dst.cols/2),(float)(dst.rows/2));Mat affine_matrix=getRotationMatrix2D(center,angle, 1.0);//求得旋转矩阵warpAffine(dst,dst,affine_matrix,dst.size());//计算图像旋转之后包含图像的最大的矩形float sinVal=abs(sin(radian));float cosVal=abs(cos(radian));Size targetSize((int)(src.cols*cosVal+src.rows*sinVal),(int)(src.cols*sinVal+src.rows*cosVal));//剪掉多余边框int x=(dst.cols-targetSize.width)/2;int y=(dst.rows-targetSize.height)/2;Rect rect(x,y,targetSize.width,targetSize.height);dst=Mat(dst,rect);}七、如何修改QtCreator应用程序名称修改*.pro文件名称,以及*.pro文件内“TARGET”项的值八、常用1.对象命名用词(1)打开open(2)保存save(3)拉伸stretch(4)平滑smooth(5)锐化sharpen(6)增强enhancement(7)恢复restore(8)分割Segment2.常用openCV函数(1)直方图均衡化Void equalizeHist(InputArray src, OutputArray dst);(2)OpenCV 中获取图像或矩阵最大、最小值C++: void minMaxLoc(InputArray src, double* minVal, double* maxVal=0, Point* minLoc=0, Point* maxLoc=0, InputArray mask=noArray() )C++: void minMaxLoc(const SparseMat& a, double* minVal, double* maxVal, int*minIdx=0, int*maxIdx=0 )</img1.cols;j++){<></img1.rows;i++){<></img1.cols;j++){<></img1.rows;i++){<>。
opencv在QT中的配置和使用教程

opencv在QT中的配置和使⽤教程本⽂使⽤的软件包:QT、cmake、opencv库由于主要参考的是以下两个博客,这⾥就根据他们的内容关键点截图加上⼀些⾃⼰遇到的问题来写,具体细节可参考下⾯两个链接。
1. 2. ⼀、软件安装(1)QT下载地址:QT安装具体细节见博客2,注意以下⼏步同时注意系统变量的添加,博客⼆中有详细说明。
(2)cmake下载地址:选最新版本即可(3)opencv下载地址:根据⾃⼰的系统选择⼆、使⽤cmake编译opencv(1)根据⾃⼰的opencv版本号选择解压(2)等待源代码解压完成(3)解压完成后,启动刚刚安装好的Cmake程序,⾃⼰填写OpenCV刚刚解压的源码⽬录,以及⾃⼰新建⼀个⽂件夹⽤于存放编译完成的opencv,填写到下⼀⾏的编译⽬标⽬录,然后点击下⽅的configure按钮进⾏第⼀次配置。
(4)选择MinGw Makefiles,然后选择第⼆项,完成后点击下⼀步(5)指定c编译器和c++编译器的路径,请找到你的QT⽬录\Tools\mingw730_64\bin下的gcc.exe和g++.exe程序,依次对应填写。
(6)等待第⼀次configure完成。
(configure到最后可能会下载opencv_videoio_ffmpeg相关库⽂件,如果没有梯⼦的话可能会⽐较久)(7)configure完成后,需要配置⼀些参数。
在第三⾏的Search中,搜索WITH_QT,打勾。
搜索WITH_OPENGL,打勾。
搜索ENABLE_PRECOMPILED_HEADERS,取消打勾。
搜索QT5_DIR,将“你的QT路径\5.13.0\mingw73_64\lib\cmake\Qt5”填进去。
例如我的是:D:\WorkApp\QT\5.13.0\mingw73_64\lib\cmake\Qt5,完成以上操作后点击Configure进⾏第⼆次Configure。
(8)第⼆次Configure完成后,点击Generate⽣成opencv编译⽂件到⽬标⽬录。
OpenCV与Qt的环境搭建及Demo

OpenCV与Qt的环境搭建及Demo前⾔:前段时间写了很多OpenCV的程序,虽然重点在算法上,但图像窗⼝只能靠cvNamedWindow,效果很不理想。
遂希望⽤Qt配合OpenCV使⽤,为我的程序建⽴图形化界⾯。
然⽽,依我对OpenCV的了解,环境配置⼀定是⽞学,在解决了多个问题后,终于实现了Demo,在这⾥分享下我的成果,也感谢⽂末参考资料中的各位博主。
Qt在Windows环境下有两种编译⽅式,MinGW和msvc。
msvc就是微软的VC运⾏库,只要安装了Visual Studio就⾃带了,在编译速度上⽐较有优势。
缺点是,采⽤msvc编译的话,需要单独安装cdb调试⼯具,才能在Qt中进⾏单步调试,本⽂将采⽤Win10 64bit+opencv 2.4.10 + Qt5.8.0 + VS2013配置环境。
第⼀步:安装与配置OpenCV在此,我们假设你的电脑上已经安装了Visual Studio,本⽂将不再赘述。
因为某些历史问题,我的OpenCV的版本为2.4.10,如果你的版本也是2.x.x,那么你可以直接将2410替换成你的版本。
1. 从下载OpenCV并解压到⼀个⽬录中,我们假设解压到了"D:\opencv\"中。
2. 配置环境变量,在系统->⾼级系统设置->环境变量->系统变量中,找到Path,并添加"D:\opencv\build\x64\vc12\bin"。
请注意上⾯路径中的x64/vc12是需要根据你系统的版本⾃⾏替换的。
第⼆步:安装与配置Qt1. 从下载Qt,并注册账户、开始安装。
注意在安装过程中需要选择MSVC2013 64bit的kit,当然,这也需要根据你系统的版本进⾏替换。
2. 新建⼀个Qt Widges Application,注意勾选VSVC2013。
如果⼀切就绪,Qt Creator中应该为下图所⽰。
3.4. 可以看到,⼀个简单的Qt项⽬由.pro⽂件,头⽂件、源⽂件、界⾯⽂件组成,今后我们都将⽤到。
在QtCreator中使用Opencv2

在Qt Creator中使用Opencv 2.3分类:数字图像处理Qt2012-04-18 17:21 104人阅读评论(0) 收藏举报打开Qt项目中的.pro文件,添加如下代码INCLUDEPATH+=D:\OpenCV\opencv\build\include\opencv2\D:\OpenCV\opencv\build\include\opencv\D:\OpenCV\opencv\build\includeCONFIG(release,debug|release){LIBS+=D:\OpenCV\opencv\build\x86\vc10\lib\opencv_calib3d231.lib\D:\OpenCV\opencv\build\x86\vc10\lib\opencv_contrib231.lib\D:\OpenCV\opencv\build\x86\vc10\lib\opencv_core231.lib\D:\OpenCV\opencv\build\x86\vc10\lib\opencv_features2d231.lib\ D:\OpenCV\opencv\build\x86\vc10\lib\opencv_flann231.lib\D:\OpenCV\opencv\build\x86\vc10\lib\opencv_gpu231.lib\D:\OpenCV\opencv\build\x86\vc10\lib\opencv_highgui231.lib\D:\OpenCV\opencv\build\x86\vc10\lib\opencv_imgproc231.lib\ D:\OpenCV\opencv\build\x86\vc10\lib\opencv_legacy231.lib\D:\OpenCV\opencv\build\x86\vc10\lib\opencv_ml231.lib\D:\OpenCV\opencv\build\x86\vc10\lib\opencv_objdetect231.lib\ D:\OpenCV\opencv\build\x86\vc10\lib\opencv_ts231.lib\D:\OpenCV\opencv\build\x86\vc10\lib\opencv_video231.lib}CONFIG(debug,debug|release){LIBS+=D:\OpenCV\opencv\build\x86\vc10\lib\opencv_calib3d231d.lib\ D:\OpenCV\opencv\build\x86\vc10\lib\opencv_contrib231d.lib\ D:\OpenCV\opencv\build\x86\vc10\lib\opencv_core231d.lib\D:\OpenCV\opencv\build\x86\vc10\lib\opencv_features2d231d.lib\ D:\OpenCV\opencv\build\x86\vc10\lib\opencv_flann231d.lib\D:\OpenCV\opencv\build\x86\vc10\lib\opencv_gpu231d.lib\D:\OpenCV\opencv\build\x86\vc10\lib\opencv_highgui231d.lib\ D:\OpenCV\opencv\build\x86\vc10\lib\opencv_imgproc231d.lib\ D:\OpenCV\opencv\build\x86\vc10\lib\opencv_legacy231d.lib\ D:\OpenCV\opencv\build\x86\vc10\lib\opencv_ml231d.lib\D:\OpenCV\opencv\build\x86\vc10\lib\opencv_objdetect231d.lib\ D:\OpenCV\opencv\build\x86\vc10\lib\opencv_ts231d.lib\D:\OpenCV\opencv\build\x86\vc10\lib\opencv_video231d.lib}注意,你的代码中的路径要根据OpenCV的具体安装路径做改变。
Qt添加库文件和头文件目录(QCreator)

Qt添加库⽂件和头⽂件⽬录(QCreator)在使⽤QtCreator开发图像处理程序的时候想加⼊Opencv库来处理图形,添加头⽂件,需要编辑⼯程⽂件夹下的.pro⽂件在⽂件中添加以下内容,即可包含头⽂件的⽂件夹:INCLUDEPATH +=D:\OpenCV2.0\vc2008\include\opencv(D:\OpenCV2.0\vc2008\include\opencv就是我的opencv头⽂件所在的⽂件夹,如果还增加其他的头⽂件,就再添加相应的内容到.pro⽂件中)光添加头⽂件还是会报错的,需要添加相应的库⽂件到相应的⼯程中,这样我们就需要添加库⽂件到⼯程中:LIBS += D:\OpenCV2.0\vc2008\lib\cv200.libLIBS += D:\OpenCV2.0\vc2008\lib\cv200d.libLIBS +=D:\OpenCV2.0\vc2008\lib\cxcore200.libLIBS += D:\OpenCV2.0\vc2008\lib\cxcore200d.libLIBS += D:\OpenCV2.0\vc2008\lib\ml200.libLIBS += D:\OpenCV2.0\vc2008\lib\ml200d.libLIBS +=D:\OpenCV2.0\vc2008\lib\cvaux200.libLIBS +=D:\OpenCV2.0\vc2008\lib\cvaux200d.libLIBS += D:\OpenCV2.0\vc2008\lib\highgui200.libLIBS +=D:\OpenCV2.0\vc2008\lib\highgui200d.libLIBS += D:\OpenCV2.0\vc2008\lib\cxts200.libLIBS +=D:\OpenCV2.0\vc2008\lib\cxts200d.lib相信会编程的朋友都知道该怎么做了,我就不赘述了。
win7 qtcreator+opencv安装与配置

Win7(X64/x86)Qt creator OpenCV2.3配置(v2.0)guo8113说明:对Qt creator、Opencv、mingw不做解释,不懂自己查资料1、需要的软件:(所有软件均可联系本人)QtCreator2.3下载地址:qt官网qt-win-opensource-4.8.4-mingw(qt官网下载)MinGW-gcc440_1(经测试3.X的版本是安装不成功的,我在这上面最少浪费了半天时间)OpenCV-2.3.1-win-superpackcmake-2.8.10.2-win32-x86/cmake/resources/software.html2、软件安装:所有软件安装到C盘根目录下,切记不可有中文目录⏹解压或安装MinGW-gcc440_1,至C盘c:\mingw添加系统环境变量“计算机->右键属性->高级系统设置-》高级”在系统环境变量新建:变量名mingw值C:\mingw⏹安装cmake⏹安装opencv⏹安装qt和qtcreator3、编译与安装3.1 Cmake生成opencvmakefile打开cmake配置源码与安装路径源码路径要包括以下内容目标路径笔者设置为c:\Qt\opencv23.2配置:configure:在下面的选择框选择mingw makefiles,点击finish3.3生成:点击generate3.4进入设置好的目标路径执行在cmd里输入cd c:\Qt\OpenCV2输入:mingw32-make进行编译等待40分钟左右编译完成:执行mingw32-make install进行安装:安装完之后将opencv的bin目录添加到环境变量4配置QTcreator打开QTcreator,工具-选项配置几项如下图:编译器mingwQTCmake5.QT creator配置把c:\Qt\OpenCV2目录下install文件夹中的所有文件包含bin lib include 文件夹,拿到c:\Qt\OpenCV2下(这几个是必须的,其他的可以删掉)。
Vs2019+Qt+Opencv环境配置心得(图文)

Vs2019+Qt+Opencv环境配置⼼得(图⽂)⼀、下载vs2019和qt
(关于vs2019的配置⽅法不在赘述,上⼀篇已经讲解了,点击)
2、
下载qt,在官⽹站下载即可
关于vs和qt安装
vs2019安装到⾃定义的⽬录就⾏,根据个⼈需求选择需要的库,我选择的C++和python库
qt安装的话不需要太⼤改动,msvc2017或者2015选上就⾏,安装到⾃定义的⽬录⼀直下⼀步到安装完成。
⼆、将vs2019和qt添加到系统环境变量中
三、在vs2019中创建新项⽬并添加qt插件
点击拓展--管理拓展--联机--搜索qt--下载
四、创建qt项⽬
配置完成后,点击mian函数,进⾏调试即可测试,另外可在此qt项⽬基础上配置opencv,⽅法的话上⼀篇⽂章有讲到()⾄此vs2019+qt+opencv的配置到此结束,这个也是我⾃⼰在配置过程中⾃⼰摸索,终于将环境配置好并且跑通了代码。
到此这篇关于Vs2019+Qt+Opencv环境配置⼼得(图⽂)的⽂章就介绍到这了,更多相关Vs2019 Qt Opencv配置内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
qtopencv

作为新手第一次接触cmake 与Qt,不得不说opencv 的编译配置之路相当曲折啊,希望大家有耐心。
之前安装完Qt 之后,新建了Qt 控制台应用程序,尝试过直接添加工程文件.pro 下的opencv 的包含目录和库目录,但是测试程序一直出毛病,几乎把安装的所有编译器都试完了,最后又出现模块计算机X86 与目标计算机x64 冲突,换了编译器,修改n 次坏境变量加重启也没效果,所以无奈放弃了,又重拾昨天Cmake 编译opencv 库的办法,虽然昨天一直没成功。
下面就正式说win7 下配置OPENCV 的Qt 环境开发下载所需工具(1)opencv2.4.9,大家不要下载新版 3.x,因为有很多东西不一样,所以容易出错。
官网为,当时好像下载一直出错,等注册成用户了才成功了,呵呵,不解释。
点击opencv for windows,新界面上会有Looking for the latest version? Download opencv-2.4.9.exe (365.7 MB),这句话,2.4.9 就在这里了,你也可以点击主页右上角的fork me on Github,直接下载源包。
(2)Qt,我下载的是最新版,5.3.2,因为后来程序出错x64 与x86 冲突,删了N 次了,不管你的win7 系统是几位的,所以直接下载这个进行在线安装,就别点那个Show DownLoads 了,如果你是高手直接知道下哪个的话,我就不说什么了。
(3)cmake 的下载地址为/download/,windows 用户直接下载其一就行(不管系统几位):安装:Opencv 如果你下载的是opencv2.x.exe,直接打开就自动解压了,如果你下载的是源包,那就直接用源包就可以了。
两者的区别是.exe 是人家给你预先编译了,你直接能用,不过东西还是原装的好哈!Qt 的安装,打开之后到了那个组件选项,点 5.3,tool 就可以了,5.3 下还有很多,上面都是编译器,大家可以自己选,不过MINGW4.8.2 还是必须要的,我记得有msvc201X 的编译器,这就看你们的VS 用的什么版本了,感觉还是选上吧,以后你可能用到VS 与Qt 集成搭建,还有MSVC201X openGL,官网说是专门处理图形的,你们自己看看官网吧,winphone 和android arm 如果你们做这方面的开发就勾选了,tools 下的MiNGW 也是必须要的,那个cloud 随你们意愿了。
QTOpenCV的安装与配置(win7_64+Qt_5.6.1+opencv_3.1.0)

QT OpenCV的安装与配置(win7_64+Qt_5.6.1+opencv_3.1.0)标签:qtopencv3.0.0win7_64安装组合:Win7-64bits+ qt-opensource-windows-x86-mingw492-5.5.0+ opencv-3.0.0+cmake-3.6.0-rc2-win32-x86感谢以下网友的分享:https:///2014/08/19/qt-5-3-1-64-bit-mingw-windows//question_113329_opencv-3-0-videoio-error/qiurisuixiang/article/details/8665278/info-detail-500574.html准备工作1、安装QT 5.6.0安装在: E:\Qt\Qt5.6.0QT下载地址:/official_releases/64bit QT下载地址是:/projects/qtx64/?source=typ_redirect2、安装opencvOpenCV官网:/下载有OpenCV 3.0.0解压至: E:\Qt\opencv3、安装cmake从CMake下载3.4.0-rc3-win32-x86安装至: E:\Qt\cmakeCMake下载地址:/cmake/resources/software.html安装CMake的的时候,注意安装路径不能有中文和空格,在安装过程中,勾选为所有用户加入到环境变量()4、配置环境变量主要是将 E:\Qt\Qt5.6.1\5.6\mingw49_32\bin 添加到系统环境变量中1.生成Makefiles打开CMake,配置源码路径和生成物(D:/opencvQT)的目标路径:点击Configure,在弹出的框中选择MinGW Makefiles ,并勾选 Specify native compilers:接着配置C和C++编译器路径:C: C:\Qt\Qt5.5.0\Tools\mingw492_32\bin\gcc.exe ->E:\Qt\Qt5.6.1\Tools\mingw492_32\bin\ gcc.exe C++: C:\Qt\Qt5.5.0\Tools\mingw492_32\bin\g++.exe ->E:\Qt\Qt5.6.1\Tools\mingw492_32\bin\ g++.exe点击finish。
基于qt+opencv数字图像处理实验一般步骤

基于QtCreator+openCV的数字图像处理实验一般步骤一、新建Qt Widgets Application项目二、设计应用界面1.拖放所需控件2.应用布局3.修改界面各个对象的文本和名称三、复制图像类型转换类单元文件到项目文件夹Imageconversion是用于Qt图像对象类型与OpenCV图像对象类型直接的转换,是整理自网络,把这两个文件复制到项目文件夹下,方便使用。
四、在构建文件和有关文件头包含openCV库1. 在项目文件“项目名称.pro”文件(*.pro 基本上是构建工程项目时由Qt 处理的第一个文件,这个文件称为Qt 项目文件,一个名为“qmake”的内部Qt 程序负责处理该文件最后添加如下指令语句:include(E:\openCV\opencv331.pri)看起来是这样的:其中opencv331.pri的文件含openCV包含路径和库文件路径,可以把这些路径信息直接一一写在Qt项目文件中,但是比较麻烦。
把这些路径信息统一写在一个文件里面,方便使用。
这个需要根据用户的实际安排情况调整,我的opencv331.pri文件内容如下:INCLUDEPATH+=E:\openCV\opencv331build\install\includeLIBS+=E:\openCV\opencv331build\install\x86\mingw\bin\libopencv_core331.dll LIBS+=E:\openCV\opencv331build\install\x86\mingw\bin\libopencv_highgui331.dll LIBS+=E:\openCV\opencv331build\install\x86\mingw\bin\libopencv_imgcodecs331.dllLIBS+=E:\openCV\opencv331build\install\x86\mingw\bin\libopencv_imgproc331.dll LIBS+=E:\openCV\opencv331build\install\x86\mingw\bin\libopencv_features2d331.dllLIBS+=E:\openCV\opencv331build\install\x86\mingw\bin\libopencv_calib3d331.dll 2.在头文件中包含opencv、图像数据类型转换以及常用Qt控件#include<QPixmap>//Qt图像类,适用于屏显#include<QFileDialog>//打开文件对话框#include<QFileInfo>//文件信息类#include<QGraphicsScene>//用于管理2D图形对象#include<QString>//Qt字符串类#include<QMessageBox>//弹出窗口类#include<opencv2/core/core.hpp>//openCV头文件#include<opencv2/highgui/highgui.hpp>//OpenCV头文件#include"imageconversion.h"//图像数据类型转换using namespace cv;五、在mainwindow.h声明私有数据成员1. 与图像读、写和显示有关的几个数据成员:QGraphicsScene sceneL,sceneR,scene;//与QgraphicsView配合显示图像QPixmap pixmapL,pixmapR,pixmap; //用于读、写图像//以后参数根据需要定义double a,b,c,d,nc,r,threshold;enum PointOperation{None=0,LinearExpand,NonLinearExpand,GrayInvert,BitWise} pointOperation;int fusionOperation;void rotate_arbitrarily_angle(cv::Mat&src,cv::Mat&dst,float angle);2. 在构造函数关联场景和图像显示对象ui->srcGraphicsView->setScene(&srcScene);//关联场景和图形显示对象ui->dstGraphicsView->setScene(&dstScene);如下图:六、定义动作控件槽函数1.打开或关闭图像文件if(ui->openButton->text()=="关闭图像"){sceneL.clear();ui->openButton->setText("打开图像");ui->saveButton->setEnabled(false);return;}QString fileName=QFileDialog::getOpenFileName(this,"打开图像",QDir::currentPath(),"Images(*.png*.bmp*.jpg*.tif)");if(!fileName.isNull()){QFileInfo file(fileName);if(pixmapL.load(file.absoluteFilePath())){sceneL.clear();//清除原有图像信息sceneL.addPixmap(pixmapL);ui->openButton->setText("关闭图像");ui->saveAsButton->setEnabled(false);}}return;2.保存图像QString fileName=QFileDialog::getSaveFileName(this,"保存图像",QDir::currentPath(),"Images(*.png*.bmp*.jpg*.tif)");if(pixmap.save(fileName,0,100))QMessageBox::information(this,tr("OK"),tr("保存成功"));elseQMessageBox::information(this,tr("NG"),tr("保存失败"));3.图像处理代码,以加法点运算为例fusionOperation=ui->fusionBox->currentIndex();if(fusionOperation==0){ui->resulLable->setText("出错啦!");QMessageBox::information(this,tr("错误"),tr("请选择算法"));return;}//图像类型转换ImageConversion imgConversion;cv::Mat mat0=imgConversion.QPixmapToCvMat(pixmapL);cv::Mat mat,img1,img2,img;cvtColor(mat0,mat,CV_BGR2GRAY);//mat1,8位无符号数图像mat.convertTo(img1,CV_64FC1);//double类型图像,0~255,图像1 mat0=imgConversion.QPixmapToCvMat(pixmapR);cvtColor(mat0,mat,CV_BGR2GRAY);//mat.convertTo(img2,CV_64FC1);//double类型图像,0~255,图像2 switch(fusionOperation){case1:img=0.5*img1+0.5*img2;ui->resulLable->setText("五五开融合结果图像");break;case2:img=0.3*img1+0.7*img2;ui->resulLable->setText("三七开融合结果图像");break;default:break;}img.convertTo(mat,CV_8UC1);pixmap=imgConversion.cvMatToQPixmap(mat);scene.clear();scene.addPixmap(pixmap);ui->saveAsButton->setEnabled(true);4.点运算处理代码pointOperation=(enum PointOperation)ui->pointOperationBox->currentIndex();if(pointOperation==None){ui->resulLable->setText("出错啦!");QMessageBox::information(this,tr("错误"),tr("请选择算法"));return;}ImageConversion imgConversion;cv::Mat mat0=imgConversion.QPixmapToCvMat(pixmapL);cv::Mat mat1,img1;cvtColor(mat0,mat1,CV_BGR2GRAY);//mat1,8位无符号数图像mat1.convertTo(img1,CV_64FC1);//double类型图像switch(pointOperation){case LinearExpand://ui->aEdit->setValidator(new QDoubleValidator(0.0,1.0,2,this));a=ui->aEdit->text().toDouble();b=ui->bEdit->text().toDouble();c=ui->cEdit->text().toDouble();d=ui->dEdit->text().toDouble();for(int i=0;i<img1.rows;i++){double*pixrow=img1.ptr<double>(i);for(int j=0;j<img1.cols;j++){if(pixrow[j]<=a*255)pixrow[j]=c*255;else if(pixrow[j]>=b*255)pixrow[j]=d*255;elsepixrow[j]=c*255+(pixrow[j]-a*255)/(b-a)*(d-c)*255;/*********************************************if(img1.at<double>(i,j)<=a*255)img1.at<double>(i,j)=c*255;else if(img1.at<double>(i,j)>=b*255)img1.at<double>(i,j)=d*255;elseimg1.at<double>(i,j)=c+(img1.at<double>(i,j)-a*255)/(b-a)*(d-c)*255;*********************************************************************/}}ui->resulLable->setText("线性扩展结果图像");break;case NonLinearExpand:nc=ui->ncEdit->text().toDouble();cv::log(img1/255+1.0,mat0);img1=mat0*nc*255;ui->resulLable->setText("非线性扩展结果图像");break;case GrayInvert:img1=255-mat1;ui->resulLable->setText("灰度倒置结果图像");break;case BitWise:threshold=ui->thresholdEdit->text().toDouble();for(int i=0;i<img1.rows;i++){double*pixrow=img1.ptr<double>(i);for(int j=0;j<img1.cols;j++){if(pixrow[j]>=threshold*255)pixrow[j]=255;elsepixrow[j]=0;}}ui->resulLable->setText("二值化结果图像");break;default:break;}img1.convertTo(mat1,CV_8UC1);pixmap=imgConversion.cvMatToQPixmap(mat1);scene.clear();scene.addPixmap(pixmap);ui->saveAsButton->setEnabled(true);5.图像旋转代码/*******************************************************************以下代码来自csdn上“笨笨的小棒棒”的个人博客:*https:///u013263891/article/details/83932479*在此对作者表示感谢!*****************************************************************/void MainWindow::rotate_arbitrarily_angle(cv::Mat&src,cv::Mat&dst,float angle) {float radian=(float)(angle/180.0*CV_PI);//填充图像int maxBorder=(int)(max(src.cols,src.rows)* 1.414);//即为sqrt(2)*max int dx=(maxBorder-src.cols)/2;int dy=(maxBorder-src.rows)/2;copyMakeBorder(src,dst,dy,dy,dx,dx,BORDER_CONSTANT);//旋转Point2f center((float)(dst.cols/2),(float)(dst.rows/2));Mat affine_matrix=getRotationMatrix2D(center,angle, 1.0);//求得旋转矩阵warpAffine(dst,dst,affine_matrix,dst.size());//计算图像旋转之后包含图像的最大的矩形float sinVal=abs(sin(radian));float cosVal=abs(cos(radian));Size targetSize((int)(src.cols*cosVal+src.rows*sinVal),(int)(src.cols*sinVal+src.rows*cosVal));//剪掉多余边框int x=(dst.cols-targetSize.width)/2;int y=(dst.rows-targetSize.height)/2;Rect rect(x,y,targetSize.width,targetSize.height);dst=Mat(dst,rect);}七、如何修改QtCreator应用程序名称修改*.pro文件名称,以及*.pro文件内“TARGET”项的值八、常用1.对象命名用词(1)打开open(2)保存save(3)拉伸stretch(4)平滑smooth(5)锐化sharpen(6)增强enhancement(7)恢复restore(8)分割Segment2.常用openCV函数(1)直方图均衡化Void equalizeHist(InputArray src, OutputArray dst);(2)OpenCV 中获取图像或矩阵最大、最小值C++: void minMaxLoc(InputArray src, double* minVal, double* maxVal=0, Point* minLoc=0, Point* maxLoc=0, InputArray mask=noArray() )C++: void minMaxLoc(const SparseMat& a, double* minVal, double* maxVal, int*minIdx=0, int*maxIdx=0 )。
QTCreator+Opencv4.x+Libtorch1.7配置

QTCreator+Opencv4.x+Libtorch1.7配置前⾔纯c++⽤户⽽⾔如果要⾃研产品,会⼀个图形界⾯编程⼯具还是有必要的。
⼤多数c++⽤户,如果在Windows平台开发则多使⽤微软全家桶,如果是Linux平台则可能是其他⼯具再cmake。
这篇博客将记录Windows平台,QT Creator中Opencv和Libtorch的配置。
⽹上有较多关于使⽤Mingw编译Opencv源码以供QT Creator使⽤的,事实上,只是基于Opencv和Libtorch的api做开发的话,⽆需编译。
正确的流程为:安装QT Creator时,勾选MSVC编译器,下载opencv的exe⽂件和libtorch的官⽅版压缩包,随后配置Release版本的项⽬即可。
如要直接看正确步骤,前往本⽂“正确步骤”⼩节即可。
各⼯具版本:QT Creator 4.11.0 (Community)QT 5.14.1OpenCV 4.5.0(官⽹) 4.1.1 x64(MingW轮⼦库版)Libtorch 1.7.0(官⽹)CUDA 10.2CUDNN(适配CUDA10.2版本)QT Creator安装不全,编译器选择错误,OpenCv使⽤困难由于⾃⼰以前主⼒开发⼯具是微软全家桶,主要Visual Studio写c++,VS code写python这样,QT Creator⼤致了解后简单装了下,只有MingW x64编译器,这导致OpenCV不能像在Visual Studio⼀样直接下载.exe解压添加动态库即可。
由于不了解QT Creator,配置时直接按照⽹上部分博客在.pro中修改,导致出错。
直接下载opencv官⽹.exe,使⽤MingW编译主要错误表现为:1. 控制台⽆法输出,即QT Creator最下⽅3 应⽤程序输出只有Debugging starts和Debugging has finished字样。
2. cv::Mat可以使⽤,但是imread和imshow均⽆法使⽤,右键项⽬重新构建时出现 undefined reference to `cv::imread(cv::String const....错误undefined reference to也就是“未定义的标识符”错误,这是因为没有正确关联.lib⽂件,⼯程只能找到函数声明,⽆法找到定义。
Qt5.5.1环境下的OpenCV3.1.0的配置(MSVS2010编译器)(陶 实验成功)

i、点击 Generate,生成 MakeFiles 成功。
转到 build 的保存路径为 C:\opencv\a,如下所示:
OpenCV.sln 便是我们需要的解决方案文件。至此,Cmake 全部结束。
2、VS2010 编译 OpenCV 解决方案生成库
a、 VS2010 打开 OpenCV 的解决方案 OpenCV.sln (双击) , 分别编译 Debug 版和 Release 版。选择 ALL_BUILD 项目,右键进行“生成”,而不是 INSTALL,点击“生成--生成解 决方案”,生成 Debug 版的 dll 和 lib,需要几分钟,如下图所示:
4、测试
测试有 2 个方案: 方案一、使用 VS2010 建立、编译 Qt 工程
到此基于 VS2010 编译器的 QT Creator5.5.1 下的 OpenCV-3.1.0 开发环境已 经配置好,剩下的就是测试是否配置成功。 1) 导入原先的 Qt 工程文件.pro,系统自动转换为.sln 工程; 2) 新建 Qt 工程(下面使用该法测试) a、启动 VS2010,点击“文件----新建项目”菜单,
(3)安装 qt-opensource-windows-x86-msvc2010-5.5.1.exe
注意:安装 qt-opensource-windows-x86-msvc2010-5.5.1.exe,选择下面的选项:
安装完前面三个东东,需要先配置一----------------------------------------------------------------------------------------------------------------------
0、安装软件
QT+OpenCV2.4.12配置

在win10 x64下配置QT5.6.0 Mingw+opencv2.4.121.准备好所有工具1)qt-opensource-windows-x86-mingw492-5.6.0.exe2)opencv2.4.123)cmake-3.5.2-win32-x862 . 安装好QT之后打开qtcreator工具—>选项—>构建和运行将cmake中的qmake.exe添加到Cmake中3. 打开opencv中sources中的CMakeLists.txt,参数-DWITH_IPP=OFF -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=D:/OpenCV,这样编译好的opencv 的路径将在D:/OpenCV。
点击执行Cmake,待完成Cmake之后点击完成。
4. 点击项目,构建步骤勾上install,然后点击菜单栏构建 构建所有项目,开始编译5. 等待编译完成之后,在D:/OpenCV就是我们自己编译好的opencv。
将D:/OpenCV中的include文件夹和x86文件夹方法你想放的位置,我的位置是C:\QT_MinGw\opencv2.4.12_build\include,C:\QT_MinGw\opencv2.4.12_build\x86将C:\QT_MinGw\opencv2.4.12_build\x86\mingw\bin添加到系统变量的Path中6. 新建一个QT项目,1.在.pro文件中添加对opencv的引用,INCLUDEPATH+=C:\QT_MinGw\opencv2.4.12_build\include\C:\QT_MinGw\opencv2.4.12_build\include\opencv\C:\QT_MinGw\opencv2.4.12_build\include\opencv2LIBS+=-LC:\QT_MinGw\opencv2.4.12_build\x86\mingw\lib\libopencv_*.a2.右键项目执行qmake,在main.cpp添加测试代码#include<opencv2/core/core.hpp>#include<opencv2/highgui/highgui.hpp>#include<opencv2/imgproc/imgproc.hpp>using namespace cv;int main(){Mat img=imread("E:/2.jpg",1);namedWindow("abc");imshow("abc",img);waitKey(0);return0;}3.构建->运行大功告成!!!。
qt中cvscalar用法

qt中cvscalar用法在Qt中,CvScalar 是OpenCV库中的一个结构体,用于表示包含多个通道的颜色或灰度值。
通常,它用于处理图像中的像素值。
在Qt中,你可以使用CvScalar 来表示颜色或灰度值,并进行一些图像处理的操作。
以下是一个简单的使用示例,假设你已经安装了OpenCV并将其集成到Qt项目中:#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>int main() {// 创建一个CvScalar对象表示灰度值CvScalar grayValue = cvScalar(128);// 创建一个CvScalar对象表示颜色,例如BGR颜色CvScalar colorValue = cvScalar(0, 255, 0); // 绿色// 在Qt中显示颜色值qDebug() << "Gray Value: " << grayValue.val[0];qDebug() << "BGR Color Values: " << colorValue.val[0] << ", " << colorValue.val[1] << ", " << colorValue.val[2];// 使用OpenCV读取图像cv::Mat image = cv::imread("path/to/your/image.jpg");// 操作图像像素,例如将第一行第一列的像素设置为红色image.at<cv::Vec3b>(0, 0) = cv::Vec3b(0, 0, 255); // BGR颜色,这里是红色// 在Qt中显示图像cv::imshow("Image", image);cv::waitKey(0);return 0;}上述示例中,cvScalar 用于表示灰度值和颜色值,而 cv::Mat 用于表示图像。
Qt5中进行OpenCV开发教程

7 iplImg = cvCreateImageHeader(cvSize(img->width,img->height),8,3);
8 iplImg->imageData = (char *)qImg->bits();
9
10 if(img->origin==IPL_ORIGIN_TL)
11 {
12
32 delete qImg;
33 }
//----main.cpp
1 #include "widget.h"
2 #include <QApplication>
3
4 int main(int argc, char *argv[])
5{
6 QApplication a(argc, argv);
7
8 IplImage *img = cvLoadImage("test.jpg",1);
2)以下是一个具体的简单实例——在自定义的Widget中显示以张图片,源码如下:
//------widget.h
1 #ifndef WIDGET_H 2 #define WIDGET_H 3 4 #include <QWidget> 5 #include <QImage> 6 #include <opencv.hpp> 7 8 class Widget : public QWidget 9{ 10 Q_OBJECT 11 12 public: 13 Widget(IplImage *img,QWidget *parent = 0); 14 ~Widget(); 15 protected: 16 void paintEvent(QPaintEvent *); 17 private: 18 IplImage *iplImg; 19 QImage *qImg; 20 }; 21 22 #endif // WIDGET_H
Qt+OpenCV调用海康相机SDK采集图像(C++)

Qt+OpenCV调⽤海康相机SDK采集图像(C++)配置环境: Qt5.12.5 OpenCV3.4.9 海康MVS3.1.0开发⼯具:QT Creator-4.11.01、开发步骤:1)创建QT项⽬,在pro⽂件中添加相机的引⽤⽂件1.1)添加海康的库:将海康SDK库MVS\Development\Includes和MVS\Development\Libraries\win64下复制到⾃⼰的⼯程⽬录下然后把库添加到.pro⽂件中点击下⼀步之后就会在.pro⽂件中出现如下代码然后在这后⾯加上以下代码,添加依赖项1 INCLUDEPATH += $$PWD/includes/2 INCLUDEPATH += $$PWD/includes/GenICam/34 DEPENDPATH += $$PWD/includes/5 DEPENDPATH += $$PWD/includes/GenICam/1.2)配置OpenCV跟上⾯配置HKSDK步骤相同库⽂件⽬录为OpenCV的安装⽬录D:/OpenCV/opencv/build/x64/vc14/lib/opencv_world349d.lib配置完成会在。
pro⽂件中出现如下代码需要在后⾯添加如下代码1 INCLUDEPATH += D:\OpenCV\opencv\build\include \2 D:\OpenCV\opencv\build\include\opencv \3 D:\OpenCV\opencv\build\include\opencv24 DEPENDPATH += D:\OpenCV\opencv\build\include \5 D:\OpenCV\opencv\build\include\opencv \6 D:\OpenCV\opencv\build\include\opencv2这样海康SDK和OpenCV库就配置完成了,可以在项⽬引⼊他们的头⽂件了。
Windows下QT安装及opencv配置(vs编译器)

Windows下QT安装及opencv配置(vs编译器)1 安装VS2015按照引导程序来即可,⼀般不会出问题。
2 安装Windows调试⼯具X64 Debuggers And Tools-x64_en-us.msiX86 Debuggers And Tools-x86_en-us.msi根据系统位数选择对应的版本,直接傻⽠安装即可。
3 安装QT(qt-opensource-windows-x86-5.9.0.exe)Qt 占⽤的存储空间很⼤,安装之前建议先准备好 8GB 以上的磁盘空间。
对于⽬前 Qt 最新版开发环境,如果不安装源代码包,实际占⽤⼤约 5.5GB;如果选择安装源码包,⼤约占⽤ 7.5GB。
双击下载得到的 qt-opensource-windows-x86-5.9.0.exe 即可开始安装。
Qt 的安装过程和普通的 Windows 软件⼀样,按照向导进⾏操作即可。
(1)注册和登录Qt 在安装过程中会提⽰⽤户进⾏注册和登录,不⽤理会,跳过(Skip)即可,实际开发时不需要登录。
(2)安装路径和关联⽂件Qt 允许⽤户⾃定义安装路径,但是请注意,安装路径不能带空格、中⽂字符或者其它任何特殊字符。
另外,该界⾯还会询问是否关联特定的⽂件类型。
如果关联(默认是关联的),特定后缀的⽂件(包括 .cpp ⽂件)默认使⽤ Qt 打开。
(3)选择安装组件Qt 安装过程中最关键的⼀步是组件的选择(4)Qt 安装组件及其说明选择完了组件,根据向导⼀步⼀步操作就可以了。
4 配置opencv默认opencv已经编译好了。
(1)在配置⽂件⾥添加opencv头⽂件路径和库⽂件路径(2)编写测试代码(3)拷贝opencv dll库到执⾏⽂件⽬录,并运⾏⼤功告成,也可以测试⼀下opencv的深度学习模型推断接⼝,都没有问题。
需要注意的是,vs编译器32位还是64位,或者release还是debug版本,要选择opencv对应的版本。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Qt里添加OpenCV库
0、新建一个控制台工程
唯一需要注意的是选择编译器,这一定要和你的opencv下载的编译版本一致!我下载的opencv是msvc2015编译的64位所以这里一定要选择相同的!
1、新建的工程点右键,选择添加库,如下图:
2、选择外部库
3、找到Opencv解压目录下的opencv\build\x64\vc15\lib\opencv_world401.lib 添加include 路径opencv\build\include,具体操作看下图:
特别需要注意的是:需要把opencv\build\x64\vc15\lib\bin目录添加到环境变量里Path里
4.点击确定后,工程文件*.pro里会添加如下内容:
win32:CONFIG(release,debug|release):LIBS+=
-LD:/opencv/build/x64/vc15/lib/-lopencv_world401
else:win32:CONFIG(debug,debug|release):LIBS+=
-LD:/opencv/build/x64/vc15/lib/-lopencv_world401d
else:unix:LIBS+=-LD:/opencv/build/x64/vc15/lib/-lopencv_world401
INCLUDEPATH+=D:/opencv/build/include
DEPENDPATH+=D:/opencv/build/include
5.保存工程,执行qmake,更新工程make文件。
这一步很重要,新手往往忘记这一步导致不能使用!!
6. 测试opencv库的安装,在main文件里使用:
#include<QCoreApplication>
#include<opencv2/core.hpp>
#include<opencv2/highgui.hpp>
int main(int argc,char*argv[])
{
QCoreApplication a(argc,argv);
cv::Mat img=cv::imread("d:/tmp.bmp",0);
cv::imshow("imgtest",img);
cv::waitKey(0);
return a.exec();
}
显示结果:
同样的道理可以安装其他c++库。