Linux下 QT+Opencv 写一个图片显示程序

我的opencv版本是3.4,QT版本是5.3.0
废话不多说直接开始
1首先用QT new一个project  选择QT Widgets Application
Linux下 QT+Opencv 写一个图片显示程序_第1张图片
然后直接下一步,把Name改成HelloWorld,然后就一直下一步就可以了。
Linux下 QT+Opencv 写一个图片显示程序_第2张图片
最后的工程截图应该是个这样子


2.界面设置
点击mainwindow.ui 拖出以下界面
Linux下 QT+Opencv 写一个图片显示程序_第3张图片
其实就是一个Label+Push Button然后你点击Button 为他添加监听事件
Linux下 QT+Opencv 写一个图片显示程序_第4张图片
点击goto slot中文版叫转到槽然后选择clicked();然后界面会转到mainwindow.cpp界面下
Linux下 QT+Opencv 写一个图片显示程序_第5张图片
我们在void MainWindow::on_OpenImage_clicked()函数中添加如下代码(函数名可能不一样,你的原本是哪样就是哪样,不需要做修改)

 QString fileName=QFileDialog::getOpenFileName(this,tr("Open Image"),
                                    ".",tr("Image Files(*.png *.jpg *.jpeg)"));

        image=cv::imread(fileName.toStdString());      
        QImage img = QImage((const unsigned char*)(image.data),
                                image.cols, image.rows, QImage::Format_RGB888);
            //设定图像大小自适应label窗口的大小
            img = img.scaled(ui->label->size(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
            ui->label->setPixmap(QPixmap::fromImage(img));

代码什么意思自己后面学吧!我这里就不具体分析了!!!!

然后转到mianwindow.h文件中
Linux下 QT+Opencv 写一个图片显示程序_第6张图片
添加以下两处代码即

#include 
#include 
#include 

cv::Mat image;

然后这个时候你可以试着点击运行试试(运行按钮在左下方)这个时候你一定会收到一大片的错误!不用管他,按我接下来说的做!!


在你创建的项目文件夹中找到一个.pro文件(这个路径就是你刚才创建项目时的默认路径)
Linux下 QT+Opencv 写一个图片显示程序_第7张图片
点击打开
Linux下 QT+Opencv 写一个图片显示程序_第8张图片我们所要做的就是添加红色部分的代码,

注意!!!这里每个人都不一样!
注意!!!这里每个人都不一样!
注意!!!这里每个人都不一样!
我的是

INCLUDEPATH += /usr/local/include/opencv \
                   /usr/local/include/opencv2

LIBS += /usr/local/lib/libopencv_core.so.3.4
LIBS += /usr/local/lib/libopencv_highgui.so.3.4
LIBS += /usr/local/lib/libopencv_core.so.3.4
LIBS += /usr/local/lib/libopencv_highgui.so.3.4
LIBS += /usr/local/lib/libopencv_calib3d.so.3.4
LIBS += /usr/local/lib/libopencv_features2d.so.3.4
LIBS += /usr/local/lib/libopencv_flann.so.3.4
LIBS += /usr/local/lib/libopencv_imgcodecs.so.3.4
LIBS += /usr/local/lib/libopencv_imgproc.so.3.4
LIBS += /usr/local/lib/libopencv_ml.so.3.4
LIBS += /usr/local/lib/libopencv_objdetect.so.3.4
LIBS += /usr/local/lib/libopencv_video.so.3.4`

这些路径怎么看直接用命令行查看有没有就行了
Linux下 QT+Opencv 写一个图片显示程序_第9张图片我这里显示了两个所以我就在INCLUDEPATH添加了这两个opencv opencv2
同理查看
Linux下 QT+Opencv 写一个图片显示程序_第10张图片
然后观察你的版本是什么做相应的修改,没有必要全部加进去,我只加了上面几个就能运行了,如果上面有的文件你没有,直接把那句话删了就OK了
至于前面的那个路径(/usr/local/lib/)不一定是这样,网上百度好像只有两种,我的是这样的,有一种好像是/usr/inclde/……什么什么的自己尝试吧自然就知道了。
现在你已经把代码添加进pro文件了,点击save
网上说需要qmake以下,我不需要,但稳妥起见你可以试试,
Linux下 QT+Opencv 写一个图片显示程序_第11张图片
然后点击运行,你会发现哇哇哇哇哇哇哇,成功运行了!!!
Linux下 QT+Opencv 写一个图片显示程序_第12张图片
点击按钮添加一张图片进去!!!
Linux下 QT+Opencv 写一个图片显示程序_第13张图片
大功告成!!!!!(图片颜色可能不对,是色彩通道的问题,这个后面解决,但现在,最起码,你把图片显示出来了呀!)

你可能感兴趣的:(QT,opencv)