您的位置:首页 > 编程语言 > Qt开发

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

2015-03-04 15:58 465 查看
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 make
sudo make install
查看版本

cmake --version
安装cmake-gui

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

sudo apt-get install ffmpeg libavcodec-dev libavcodec52 libavformat52 libavformat-dev
sudo apt-get install libgstreamer0.10-0-dbg libgstreamer0.10-0 libgstreamer0.10-dev
sudo apt-get install libxine1-ffmpeg libxine-dev libxine1-bin
sudo apt-get install libunicap2 libunicap2-dev
sudo apt-get install libdc1394-22-dev libdc1394-22 libdc1394-utils
sudo apt-get install swig
sudo apt-get install libv4l-0 libv4l-dev
sudo apt-get install python-numpy
sudo 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()
a7fa
,
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());
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  opencv linux qt