# 用OpenWrt package方式编译OpenCV

首先进入wrtnode文件夹，输入下面的命令开始配置。

```
make menuconfig
```

WRTnode团队已经为大家写了一个demo，功能是调用摄像头连续拍摄六张照片：

```
WRTnode  ---> demos  ---> <*> opencv-test ...... opencv demo app
```

当然，还需要选择摄像头驱动：

```
Kernel modules  --->  Video Support  --->  

<*> kmod-video-core .......... Video4Linux support
<*>   kmod-video-uvc ......... USB Video Class (UVC) support
-*-   kmod-video-videobuf2 ... videobuf2 lib
```

## 编译

输入下面的命令开始编译吧！

```
make V=s
```

如果你编译过程中报错了，错误信息是找不到`highgui`等信息，原因就是SDK默认不编译`highgui`，但是opencv-test需要`highgui`，因此我们需要修改OpenCV的Makefile文件。

编辑`wrtnode/feeds/packages/libs/opencv/Makefile`文件，将`highgui`和`videostab`开启。选项位于`CMAKE_OPTIONS`。

```
-DBUILD_opencv_highgui:BOOL=ON \
-DBUILD_opencv_videostab:BOOL=ON \
```

当然，即使添加了以后，编译还是可能出问题，那么我们还需要将位于`wrtnode/feeds/wrtnode/wrtnode/opencv-test/src/Makefile`的Makefile进行修改，这是测试代码的Makefile，我们需要去掉第十行代码：

```
-lopencv_imgcodecs -lopencv_videoio
```

编译完成以后记得刷写固件到WRTnode上，固件地址：

```
wrtnode/bin/ramips/openwrt-ramips-mt7628-wrtnode2r-squashfs-sysupgrade.bin
```

## 运行

连接USB摄像头之后，我们执行`cv_test`，不出意外将会拍摄6张图片。

```
ssh root@192.168.8.1
cv_test
```

![](https://3422114240-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LhkWhCo-4dg4AdVIoFQ%2F-LhkWkRlQ6Erc6HRKqGB%2F-LhkWzqgu0rQmy91Il9Z%2FSnip20151113_6.png?generation=1560961089745337\&alt=media)
