一、安裝make,cmake
sudo apt-get install make sudo apt-get install cmake
二、下載deb包
去這里下載libopencv_2.4.10.deb.zip(我不太好下載,折騰了好久最后是用手機流量才下載下來,電腦一直下載到一大半就停止不動了)
那個deb的作者還發了這個帖子,有問題可以去問
三、安裝deb包
解壓.deb.zip,復制到RPi上,到那個目錄里,然后執行
sudo dpkg -i ./libopencv_2.4.10.deb
四、復制頭文件
下載OpenCV2.4.10 Windows版,在win下安裝,得到/build,/source目錄。復制/build/include/*到/usr/local/include
(假設/build/include/已經復制到RPi上的./目錄了)
sudo cp -r ./* /usr/local/include
說明一下deb和頭文件的關系:deb里頭是一些.so(動態鏈接庫),在鏈接時用到;頭文件在編譯時用到。缺一不可。
五、安裝ffmpeg
可以先試試看不做這個步驟,反正我在安裝之前一直莫名其妙地報錯,說
/tmp/ccDC21Dx.o: In function `cv::Mat::~Mat()': a.cpp:(.text._ZN2cv3MatD2Ev[_ZN2cv3MatD5Ev]+0x3c): undefined reference to `cv::fastFree(void*)' /tmp/ccDC21Dx.o: In function `cv::Mat::release()': a.cpp:(.text._ZN2cv3Mat7releaseEv[cv::Mat::release()]+0x58): undefined reference to `cv::Mat::deallocate()'
安裝之后正常(不知道是不是這個原因)
sudo apt-get install ffmpeg
六、新建測試工程源碼
假設我們在目錄./下做這個工程
1.新建a.cpp,內容如下:(主要是看看Mat能否正常初始化和析構,可以的話基本上就沒問題了)
#include "opencv2/opencv.hpp" using namespace cv; int main(){ Mat img; return 0; }
2.新建CMakeLists.txt,內容如下:(這個文件名不可更改,用於cmake)
PROJECT(main) CMAKE_MINIMUM_REQUIRED(VERSION 2.6) AUX_SOURCE_DIRECTORY(. DIR_SRCS) ADD_EXECUTABLE(main ${DIR_SRCS}) TARGET_LINK_LIBRARIES(main opencv_core) TARGET_LINK_LIBRARIES(main opencv_imgproc) TARGET_LINK_LIBRARIES(main opencv_video) TARGET_LINK_LIBRARIES(main opencv_highgui) TARGET_LINK_LIBRARIES(main opencv_photo) TARGET_LINK_LIBRARIES(main opencv_flann) TARGET_LINK_LIBRARIES(main opencv_superres) TARGET_LINK_LIBRARIES(main opencv_stitching) TARGET_LINK_LIBRARIES(main opencv_ml) TARGET_LINK_LIBRARIES(main opencv_video) TARGET_LINK_LIBRARIES(main opencv_features2d) TARGET_LINK_LIBRARIES(main opencv_calib3d) TARGET_LINK_LIBRARIES(main opencv_objdetect)
七、編譯測試工程
1.編譯
mkdir ./build
cd ./build cmake .. make
如果沒有錯誤,就會產生如下輸出
pi@turtle ~/swap/proj $ mkdir build pi@turtle ~/swap/proj $ cd ./build pi@turtle ~/swap/proj/build $ cmake .. -- The C compiler identification is GNU 4.6.3 -- The CXX compiler identification is GNU 4.6.3 -- Check for working C compiler: /usr/bin/gcc -- Check for working C compiler: /usr/bin/gcc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Configuring done -- Generating done -- Build files have been written to: /home/pi/swap/proj/build pi@turtle ~/swap/proj/build $ make Scanning dependencies of target main [100%] Building CXX object CMakeFiles/main.dir/a.cpp.o Linking CXX executable main [100%] Built target main
2.運行
./main
應該如下:
pi@turtle ~/swap/proj/build $ ./main
pi@turtle ~/swap/proj/build $
對,確實沒有輸出,但是沒有報錯就是好事了,接下來就可以使用了!
八、(g++命令行)
g++ ./a.cpp -lopencv_core -lopencv_imgproc -lopencv_video -lopencv_highgui -lopencv_flann -lopencv_superres -lopencv_stitching -lopencv_ml -lopencv_features2d -lopencv_calib3d -lopencv_objdetect
(版權所有,轉載注明出處http://www.cnblogs.com/turtlegood/)
(本文結束)