## 圖文詳解OpenCV在Jetson TK1上的安裝和使用
本文介紹如何在Jetson TK1上安裝并且使用OpenCV,并給出了示例,供大家參考學習。
### 1、Jetson TK1平臺的OpenCV優化包下載
下載地址:[https://developer.nvidia.com/linux-tegra-rel-19](https://developer.nvidia.com/linux-tegra-rel-19)(需要注冊才可以下載)
如下圖所示

下載后拷貝到TK1平臺中,如下圖所示


### 2、使能通用存儲庫和更新apt-get


~~~
sudo apt-add-repository universe
sudo apt-get update
~~~
### 3、安裝OpenCV優化包


~~~
sudo dpkg -i libopencv4tegra_2.4.8.2_armhf.deb
sudo dpkg -i libopencv4tegra-dev_2.4.8.2_armhf.deb
~~~
### 4、安裝一些函數庫






~~~
# Some general development libraries
sudo apt-get install build-essential make cmake cmake-curses-gui g++
# libav video input/output development libraries
sudo apt-get install libavformat-dev libavutil-dev libswscale-dev
# Video4Linux camera development libraries
sudo apt-get install libv4l-dev
# Eigen3 math development libraries
sudo apt-get install libeigen3-dev
# OpenGL development libraries (to allow creating graphical windows)
sudo apt-get install libglew1.6-dev
# GTK development libraries (to allow creating graphical windows)
sudo apt-get install libgtk2.0-dev
~~~
### 5、下載OpenCV源碼
下載地址:[http://opencv.org/](http://opencv.org/)(注意選擇OpenCV for Linux/Mac)
或者在TK1平臺上直接下載,方法是:
~~~
wget http://downloads.sourceforge.net/project/opencvlibrary/opencv-unix/2.4.9/opencv-2.4.9.zip
~~~
下載成功后見下圖:

### 6、解壓OpenCV源碼,并進行配置



~~~
cd Downloads
unzip opencv-2.4.9.zip
mv opencv-2.4.9 ~
~~~
~~~
cd ~/opencv-2.4.9
mkdir build
cd build
~~~

~~~
cmake -DWITH_CUDA=ON -DCUDA_ARCH_BIN="3.2" -DCUDA_ARCH_PTX="" -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF
~~~
自己也可以根據需要進行配置(If you want to customize any more of the build settings such as whether to support Firewire cameras or Qt GUI, it is easiest to use the curses interactive version of CMake from here on:):
~~~
ccmake ..
~~~
### 7、 build & install OpenCV using a single command
Now you should be ready to build OpenCV and then install it. Unfortunately, OpenCV is currently experiencing a problem with CMake where installing the built libraries (that normally takes a few seconds) re-compiles the whole OpenCV (that normally takes close to an hour). So to save time, instead of running "make -j4 ; make install", we will build & install OpenCV using a single command.
To build & install the OpenCV library using all 4 Tegra CPU cores (takes around 40 minutes), including copying the OpenCV library to "/usr/local/include" and "/usr/local/lib":
~~~
sudo make -j4 install
~~~

### 8、make sure your system searches the "/usr/local/lib" folder for libraries
Finally, make sure your system searches the "/usr/local/lib" folder for libraries:
~~~
echo "# Use OpenCV and other custom-built libraries." >> ~/.bashrc
echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/" >> ~/.bashrc
source ~/.bashrc
~~~



### 9、測試OpenCV并運行幾個例子
~~~
# Make sure we have installed a C++ compiler.
sudo apt-get install build-essential g++
~~~

### 第一個示例:
~~~
# Test a simple OpenCV program. Creates a graphical window, hence you should plug a HDMI monitor in or use a remote viewer such as X Tunneling or VNC or TeamViewer on your desktop.
cd ~/opencv-2.4.9/samples/cpp
g++ edge.cpp -lopencv_core -lopencv_imgproc -lopencv_highgui -o edge
./edge
~~~


### 第二個示例:
~~~
# If you have a USB webcam plugged in to your board, then test one of the live camera programs.
g++ laplace.cpp -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_calib3d -lopencv_contrib -lopencv_features2d -lopencv_flann -lopencv_gpu -lopencv_legacy -lopencv_ml -lopencv_objdetect -lopencv_photo -lopencv_stitching -lopencv_superres -lopencv_video -lopencv_videostab -o laplace
./laplace
~~~


(注意:此示例沒有演示出來,待解決。。。,錯誤提示見上圖。)
### 第三個示例:
~~~
# Test a GPU accelerated OpenCV sample.
cd ../gpu
g++ houghlines.cpp -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_calib3d -lopencv_contrib -lopencv_features2d -lopencv_flann -lopencv_gpu -lopencv_legacy -lopencv_ml -lopencv_objdetect -lopencv_photo -lopencv_stitching -lopencv_superres -lopencv_video -lopencv_videostab -o houghlines
./houghlines ../cpp/logo_in_clutter.png
~~~


CPU與GPU的實驗結果如下圖:

最終的處理結果見下面的三個圖:分別是原圖、CPU處理后、GPU處理后的結果。



(If the houghlines GPU sample program worked then you have successfully installed OpenCV and its GPU module!)
### 10、更多參考學習資料
[Using OpenCV with gcc and CMake](http://docs.opencv.org/doc/tutorials/introduction/linux_gcc_cmake/linux_gcc_cmake.html)
[official opencv tutorials](http://docs.opencv.org/doc/tutorials/tutorials.html)
[OpenCV Reference Manual PDF file](http://docs.opencv.org/opencv2refman.pdf)
- 前言
- NVIDIA Jetson TK1學習與開發(一):NVIDIA Jetson TK1介紹
- NVIDIA Jetson TK1學習與開發(二):入門指導
- NVIDIA Jetson TK1學習與開發(三):圖文詳解Jetson TK1平臺搭建
- NVIDIA Jetson TK1學習與開發(四):一些細節問題
- NVIDIA Jetson TK1學習與開發(五):helloworld的C版本與C++版本
- NVIDIA Jetson TK1學習與開發(六):如何安裝CUDA
- NVIDIA Jetson TK1學習與開發(七):圖文詳解OpenCV在Jetson TK1上的安裝和使用
- NVIDIA Jetson TK1學習與開發(八):圖文詳解OpenGL在Jetson TK1上的安裝和使用
- NVIDIA Jetson TK1學習與開發(九):基于GPU加速的OpenCV人體檢測(Full Body Detection)
- NVIDIA Jetson TK1學習與開發(十):人臉檢測(Face Detection)
- NVIDIA Jetson TK1學習與開發:如何解決輸入和輸出音頻問題