Centos6.5 下安装opencv
為了熟悉一下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呢,下面說明所處問題:
(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:沒有那個文件或目錄
此處我采用寫makefile方式:
編寫makefile 如下:
make
./drawing
顯示成功
如果出現第一步里面提到的錯誤,那就裝完依賴庫重新來編譯一遍opencv.
總結
以上是生活随笔為你收集整理的Centos6.5 下安装opencv的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Centos 开机无法输入密码的问题
- 下一篇: Centos下 ffmpeg 和open