已測試環境:
CentOS 6.3 32bit
CentOS 6.5 64bit
曾經在CentOS 6.3 32bit安裝過OpenCV,參見CentOS 6.3中安裝OpenCV2.3.1,如今換了64bit系統,大刀闊斧,重新來一遍。
yum install gcc-c++? ? ? ? ? ? ? # g++編譯
yum install gtk-devel? ? ? ? ? ? # 反正是gtk神馬的,不一定就是gtk-devel,可以使用*gtk-devel*匹配
yum install gimp-devel
yum install gimp-devel-tools
yum install gimp-help-browser
yum install zlib-devel
yum install libtiff-devel? ? ? ? # tiff格式圖片支持
yum install libjpeg-devel? ? ? ? # jpeg圖片支持
yum install libpng-devel? ? ? ? # png圖片支持
yum install gstreamer-devel? ? ? # 處理MP3、Ogg、MPEG1、MPEG2、AVI等格式的多媒體數據
yum install libavc1394-devel? ? # 1394音頻接口的控制命令集
yum install libraw1394-devel
yum install libdc1394-devel
yum install jasper-devel
yum install jasper-utils
yum install cmake? ? ? ? ? ? ? ? # 方便編譯構建OpenCV的工具
yum install swig
yum install python? ? ? ? ? ? ? # python環境支持
yum install libtool
yum install nasm? ? ? ? ? ? ? ? # 匯編工具
ffmpeg沒有現成的用于CentOS的rpm包,因此需要使用源碼編譯安裝,
./configure--enable-shared–disable-yasmmakemake install
此時,ffmpeg默認安裝到/usr/local下面.
使用vi打開CMakeLists.txt文件,找到下面一行后將其注釋(#)
set_property( CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS${CMAKE_CONFIGURATION_TYPES} )
# set_property( CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS${CMAKE_CONFIGURATION_TYPES} )
使用vi打開CMakeLists.txt文件,搜索關鍵字ffmpeg,找到對應位置,
if(EXISTS /usr/include/ffmpeg/libavformat/avformat.hOR HAVE_FFMPEG_SWSCALE)
確認上面的目錄是/usr/include,如果在安裝ffmpeg時,修改了路徑,則作相應的修改,現在我們可以不動。
到opencv源代碼主目錄寫下,依次執行
mkdir release
cd release
cmake ../
make
make install
等待安裝結束,默認安裝到位置/usr/local/。
#include #include using namespace cv;int main( int argc, char** argv ){? Mat image;? image = imread(argv[1], 1 );? if( argc != 2 ||!image.data )? ? {? ? ? printf("No image data\n");? ? ? return -1;? ? }? namedWindow("Display Image", CV_WINDOW_AUTOSIZE );? imshow("Display Image", image );? waitKey(0);? return 0;}
編寫Makefile,
SRC=DisplayImage.cpp
LIB=-L/usr/local/lib/
INC=-I/usr/local/include/opencv/
Test:$(SRC)
g++ -o Test $(LIB)$(INC) -lopencv_core -lopencv_highgui -lopencv_ml $^
執行make,沒有錯誤。繼續運行,./Test {ImagePathName},出現“不能鏈接到動態庫”的錯誤,大致如下:
error while loading shared libraries: libopencv_core.so.2.3: cannot open shared object file: No such file or directory
解決辦法:
cd /etc/ld.so.conf.d/? # 該文件夾下存放了各種動態鏈接庫的路徑信息
vim usr-lib.conf
添加如下信息(opencv的lib所在路徑)
/usr/local/lib
保存文件后執行ldconfig命令即可。
重新運行,沒問題,收工。