下面為自己測試可用的OpenCV在Linux(CentOS 6.3)下的安裝步驟
yum install gcc-c++
yuminstall gtk-devel.i686
yum installgimp-devel.i686
yuminstall gimp-devel-tools.i686
yum installgimp-help-browser.i686
yuminstall zlib-devel.i686
yum installlibtiff-devel.i686
yum installlibjpeg-devel.i686
yuminstall libpng-devel.i686
yum installgstreamer-devel.i686
yum installlibavc1394-devel.i686
yuminstall libraw1394-devel.i686
yum installlibdc1394-devel.i686
yum installjasper-devel.i686
yum install jasper-utils.i686
yum installcmake
yum installswig
yum install python
yum –y install libtool
yum installnasm.i686
./configure --enable-shared –disable-yasm
make
make install
此時,ffmpeg默認安裝到/usr/local下面
使用vi打開CMakeLists.txt文件,
(1)找到
set_property( CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS${CMAKE_CONFIGURATION_TYPES} )
後將其注釋(添加#號)。
(2)搜索關鍵字ffmpeg,找到對應位置,修改路徑為(這與前面ffmpeg安裝路徑有關)
if(EXISTS /usr/include/ffmpeg/libavformat/avformat.hOR HAVE_FFMPEG_SWSCALE)
(3)到opencv源代碼主目錄寫下,依次執行
mkdir release
cd release
cmake ../
make
make install
等待安裝結束,默認安裝到位置/usr/local/。
#include <cv.h>
#include <highgui.h>
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},出現“不能鏈接到動態庫”的錯誤。
解決辦法:
cd /etc/ld.so.conf.d/ (該文件夾下存放了各種動態鏈接庫的路徑信息)
新建一個文件,vi usr-lib.conf,添加如下信息(opencv的lib所在路徑)
/usr/local/lib
關閉文件後執行ldconfig命令即可。
重新運行,沒問題,收工。