Centos6.5 下安装opencv
為了熟悉一下linux下C++,準(zhǔn)備通過(guò)將以前所寫項(xiàng)目由windows移植到linux下,首先配置環(huán)境,這個(gè)還挺繁瑣,出錯(cuò)挺多的,現(xiàn)在記錄一下。
系統(tǒng):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
如果不安裝上述依賴包,到最后調(diào)用opencv時(shí)會(huì)出錯(cuò),如下:
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,...................
此時(shí)只能將編譯好的opencv刪除再重新編譯,即將/usr/local/lib和/usr/local/include/中的有關(guān)的刪除
mv /usr/local/lib/libopencv*
mv -fr /usr/local/include/opencv?
mv -fr /usr/local/include/opencv2?
然后再重新編譯opencv.
2、安裝/更新CMake
為什么要安裝或者更新cmake呢,下面說(shuō)明所處問(wèn)題:
(1)下載
? ?在OpenCV官網(wǎng)http://sourceforge.net/projects/opencvlibrary/files/?下載所需版本
? ?拷貝到/usr/local/路徑之下
(2)tar?-xvf?OpenCV-2.4.8.tar.bz2?解壓
(3)cd??OpenCV-2.4.8 ?進(jìn)入目錄
(4)yum?install?cmake? ? ? 直接從網(wǎng)上安裝cmake
(5)?cmake?CMakeLists.txt??
如果你此步?jīng)]有出錯(cuò)opencv就已經(jīng)安裝了;
此步出錯(cuò)
需要安裝新版的cmake
下載最新版本cmake文件進(jìn)行編譯
http://www.cmake.org/cmake/resources/software.html
將其復(fù)制到/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 ?
修改環(huán)境變量:
vim /etc/profile
在尾部添加:
PATH=/usr/local/cmake/bin:$PATH export PATH這里注意,不要講冒號(hào)寫成分號(hào),要不然各種命令行都不能用,重啟后進(jìn)入不了系統(tǒng)等。
//使修改生效
source /etc/profile ?
//查看PATH值有沒(méi)有添加剛剛的路徑??
echo $PATH ??
//檢驗(yàn)版本
cmake --version
安裝成功了cmake再繼續(xù)安裝opencv
3、安裝Opencv
繼續(xù)上一步的cmake?CMakeLists.txt??
出錯(cuò):
System is unknown to cmake, create:
opencv 版本不對(duì)
重新下載Opencv,這次選擇了下載opencv-2.4.3,放于/usr/local/目錄下
重復(fù)上一步中安裝opencv步驟
tar?-xvf OpenCV-2.4.3.tar.bz2?解壓
cd??OpenCV-2.4.3.?進(jìn)入目錄
yum?install?cmake? ? ? 直接從網(wǎng)上安裝cmake
cmake?CMakeLists.txt??
make?
make install
成功4、添加路徑
如果不添加路徑到環(huán)境變量當(dāng)運(yùn)行測(cè)試程序時(shí)會(huì)出錯(cuò)如下:
./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這兩個(gè)默認(rèn)的目錄下邊
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時(shí)出錯(cuò):libstdc++.so.6.0.18-gdb.py不是ELF文件-它起始的魔數(shù)錯(cuò)誤。
解決方法,這里直接暴力刪除了,rm libstdc++.so.6.0.18-gdb.py
再重新ldconfig,沒(méi)有錯(cuò)
5、測(cè)試:
測(cè)試代碼顯示一張圖片:
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 );//創(chuàng)建窗口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注意上面是~鍵的符號(hào)而不是引號(hào)要不然會(huì)出錯(cuò):--libs opencv:沒(méi)有那個(gè)文件或目錄 ??fatal error: cv.h:沒(méi)有那個(gè)文件或目錄
此處我采用寫makefile方式:
編寫makefile 如下:
make
./drawing
顯示成功
如果出現(xiàn)第一步里面提到的錯(cuò)誤,那就裝完依賴庫(kù)重新來(lái)編譯一遍opencv.
總結(jié)
以上是生活随笔為你收集整理的Centos6.5 下安装opencv的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Centos 开机无法输入密码的问题
- 下一篇: Centos下 ffmpeg 和open