linux中配置在qt中调用opencv图像库

来源:互联网 发布:程序员简历造假 编辑:程序博客网 时间:2024/04/29 14:20

1、安装cmake

到官网上下载cmake2.8.7。(新的版本我没尝试过)

http://www.cmake.org/

解压

sudo tar zxvf cmake-2.8.8.gz -C /opt/LON/cmake-2.8.8/

进入解压出来的文件夹,执行bootstrap

sudo ./bootstrap

接下来安装

sudo makesudo make install
查看版本

cmake --version
安装cmake-gui

sudo apt-get install cmake-gui
2、安装视频处理包

sudo apt-get install ffmpeg libavcodec-dev libavcodec52 libavformat52 libavformat-devsudo apt-get install libgstreamer0.10-0-dbg libgstreamer0.10-0 libgstreamer0.10-devsudo apt-get install libxine1-ffmpeg libxine-dev libxine1-binsudo apt-get install libunicap2 libunicap2-devsudo apt-get install libdc1394-22-dev libdc1394-22 libdc1394-utilssudo apt-get install swigsudo apt-get install libv4l-0 libv4l-devsudo apt-get install python-numpysudo apt-get install libpython2.7 
3、安装 GTK+ 2.x

sudo apt-get install gnome-core-devel

否则后期编译运行程序会出现类似如下的问题:

OpenCV Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script) in cvNamedWindow, file /usr/local/opencv/OpenCV-2.0.0/src/highgui/window.cpp, line 100 
terminate called after throwing an instance of 'cv::Exception'

4、安装opencv

下载opencv2.4.9 

http://sourceforge.net/projects/opencvlibrary/files/

目录路径:Home opencv-unix / 2.4.9 

下载opencv-2.4.9.zip

解压opencv-2.4.9.zip

新建opencv249文件夹,作为编译目录

 

执行cmake-gui

cmake-gui

点configure选择本地编译器




点Generate


接下来在opencv249 分别执行make和make install即可完成编译安装。

进入opencv249 执行

sudo cp unix-install/opencv.pc   /usr/share/pkgconfig/
然后在 /etc/ld.so.conf 文件中 添加 /usr/local/lib 这一行,并更新设置。
sudo ldconfig

例程测试


.pro
INCLUDEPATH += /usr/local/include/
LIBS += `pkg-config opencv --cflags --libs`

mainwindow.cpp

#include "mainwindow.h"#include "ui_mainwindow.h"#include "opencv2/highgui/highgui.hpp"#include <opencv2/core/core.hpp>#include <opencv2/imgproc/imgproc.hpp>#include <QDebug>using namespace cv;MainWindow::MainWindow(QWidget *parent) :    QMainWindow(parent),    ui(new Ui::MainWindow){    ui->setupUi(this);}MainWindow::~MainWindow(){    delete ui;}void MainWindow::on_CvOpenImg_clicked(){    Mat m_image;    m_image = imread("cat.jpg");    if( !m_image.empty() )    {        imshow("Test", m_image);    }    else    {        qDebug()<<"input error";    }    Mat rgb;    QImage img;    if(m_image.channels()==3)    {        //cvt Mat BGR 2 QImage RGB        cvtColor(m_image,rgb,CV_BGR2RGB);        img =QImage((const unsigned char*)(rgb.data),                    rgb.cols,rgb.rows,                    rgb.cols*rgb.channels(),                    QImage::Format_RGB888);    }    else    {        img =QImage((const unsigned char*)(m_image.data),                    m_image.cols,m_image.rows,                    m_image.cols*m_image.channels(),                    QImage::Format_RGB888);    }    ui->imagelabel->setPixmap(QPixmap::fromImage(img));    ui->imagelabel->resize(ui->imagelabel->pixmap()->size());}




1 0