//安装cmake
$ cd ~/software
$ sudo wget
$ tar -zxvf cmake-2.8.6.tar.gz
$ cd cmake-2.8.6
$ ./bootstrap
$ make
$ sudo make install
$ export PATH=/bin:$PATH
$ cmake --version
//下载opencv,解压缩
cd ~/software
sudo wget
sudo tar -xjf OpenCV-2.2.0.tar.bz2
sudo mkdir ~/software/openCV_build
cd ~/software/openCV_build
$ sudo cmake -D CMAKE_BUILD_TYPE=RELEASE -D
CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_NEW_PYTHON_SUPPORT=NO -D
$ sudo yum install gtk2-devel.x86_64
$ sudo yum install libtiff-devel.x86_64
//安装
$ cd ~/software/openCV_build
$ sudo make
$ sudo make install
//环境设置,也有说不用设置的
$ sudo vi /etc/ld.so.conf.d/opencv.conf
追加内容 /usr/local/lib
$ sudo ldconfig
$ sudo vi /etc/environment
追加以下内容
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
为了熟悉一下linux下C++,准备通过将以前所写项目由windows移植到linux下,首先配置环境,这个还挺繁琐,出错挺多的,现在记录一下。
系统:Centos 6.5
最后版本 OpenCV: 2.4.3
1、安装依赖包(很重要)
yum install cmake gcc gcc-c++ gtk+-devel gimp-devel gimp-devel-tools gimp-help-browser zlib-devel libtiff-devel libjpeg-devel libpng-devel gstreamer-devel libavc1394-devel libraw1394-devel libdc1394-devel jasper-devel jasper-utils swig python libtool nasm
如果不安装上述依赖包,到最后调用opencv时会出错,如下:
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,...................
此时只能将编译好的opencv删除再重新编译,即将/usr/local/lib和/usr/local/include/中的有关的删除
mv /usr/local/lib/libopencv*
mv -fr /usr/local/include/opencv
mv -fr /usr/local/include/opencv2
然后再重新编译opencv.
2、安装/更新CMake
为什么要安装或者更新cmake呢,下面说明所chǔ问题:
(1)下载
在OpenCV官网http://sourceforge.net/projects/opencvlibrary/files/ 下载所需版本
拷贝到/usr/local/路径之下
(2)tar -xvf OpenCV-2.4.8.tar.bz2 解压
(3)cd OpenCV-2.4.8 进入目录
(4)yum install cmake 直接从网上安装cmake
(5) cmake CMakeLists.txt
如果你此步没有出错opencv就已经安装了;
此步出错
需要安装新版的cmake
下载最新版本cmake文件进行编译
http://www.cmake.org/cmake/resources/software.html
将其复制到/usr/local/路径下
解压:
r -zxv -f cmake-2.8.10.2.tar.gz // 解压压缩包
rm -rf cmake-2.8.10.2.tar.gz // 删除压缩包
cd cmake-2.8.10.2
./configure
make
make install
// 修改文件夹名
mv cmake-2.8.10.2 cmake
修改环境变量:
vim /etc/profile
在尾部添加:
- PATH=/usr/local/cmake/bin:$PATH
- export PATH
//使修改生效
source /etc/profile
//查看PATH值有没有添加刚刚的路径
echo $PATH
//检验版本
cmake --version
安装成功了cmake再继续安装opencv
3、安装Opencv
继续上一步的cmake CMakeLists.txt
出错:
System is unknown to cmake, create:
opencv 版本不对
重新下载Opencv,这次选择了下载opencv-2.4.3,放于/usr/local/目录下
重复上一步中安装opencv步骤
tar -xvf OpenCV-2.4.3.tar.bz2 解压
cd OpenCV-2.4.3. 进入目录
yum install cmake 直接从网上安装cmake
cmake CMakeLists.txt
make
make install
成功
4、添加路径
如果不添加路径到环境变量当运行测试程序时会出错如下:
./drawing: error while loading shared libraries: libopencv_calib3d.so.2.4: cannot open shared object file: No such file or directory
解决方法:
(1)用ln将需要的so文件链接到/usr/lib或者/lib这两个默认的目录下边
ln -s /where/you/install/lib/*.so /usr/lib
sudo ldconfig
(2)修改LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/where/you/install/lib:$LD_LIBRARY_PATH
sudo ldconfig
(3)修改/etc/ld.so.conf (我采用了此种方法)
vim /etc/ld.so.conf
add /where/you/install/lib
sudo ldconfig
输入ldconfig时出错:libstdc++.so.6.0.18-gdb.py不是ELF文件-它起始的魔数错误。
解决方法,这里直接暴力删除了,rm libstdc++.so.6.0.18-gdb.py
再重新ldconfig,没有错
5、测试:
测试代码显示一张图片:
- 1 #include "cv.h"
- 2 #include "highgui.h"
- 3
- 4 int main()
- 5 {
- 6 IplImage* pImg = NULL;
- 7
- 8 if((pImg = cvLoadImage("1.jpg",1)))
- 9 {
- 10 cvNamedWindow( "Image", 1 );//创建窗口
- 11 cvShowImage( "Image", pImg );//显示图像
- 12 cvWaitKey(0); //等待按键
- 13 cvDestroyWindow( "Image");//销毁窗口
- 14 cvReleaseImage( &pImg ); //释放图像
- 15 return 0;
- 16 }
- 17 return -1;
- 18 }
可以用下面的命令编译
g++ `pkg-config --cflags --libs opencv` code.cpp -o drawing
注意上面是~键的符号而不是引号要不然会出错:--libs opencv:没有那个文件或目录 fatal error: cv.h:没有那个文件或目录
此chǔ我采用写makefile方式:
编写makefile 如下:
make
./drawing
显示成功
如果出现第一步里面提到的错误,那就装完依赖库重新来编译一遍opencv.
STEP 1 :-
To install the dependencies required from OpenCV, just run the following commands:
sudo apt-get -y install libopencv-dev build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff4-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip
STEP 2 :-
Download the latest version of OpenCV
wget https://github.com/Itseez/opencv/archive/3.0.0-alpha.zip
unzip opencv-3.0.0-alpha.zip
STEP 3:-
Install Open CV
cd opencv-3.0.0-alpha
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON ..
Note : If you get the hash mismatch error, then download the file ippicv_linux_20140513.tgz manually from sourceforget
After downloading the file extract the contents to the ippicv folder in the opencv-3.0.0-alpha folder.
Now add the option -D WITH_IPP=OFF to the before cmake command.
Then execute the following commands :
make -j $(nproc)
sudo make install
STEP 4:-
Finishing installation
Now some final touches :
sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig
After the complete process execute
sudo apt-get update
and then reboot your system.
Now you have a working installation of OpenCV.