测试OpenCV

Makefile

我们来分析一下opencv-test,首先是文件组成:

opencv-test/
|-- Makefile
`-- src
    |-- cv_test.c
    `-- Makefile

在opencv-test目录下有一个Makefilearrow-up-right,下面是本Makefile的详解:

# Copyright (C) 2014 WRTnode machine team.
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
# noel<noel@wrtnode.com>
#

include $(TOPDIR)/rules.mk

PKG_NAME:=opencv-test
# PKG_NAME - 软件包的名字, 在 menuconfig 和 ipkg 显示

PKG_RELEASE:=1
# PKG_RELEASE - 这个 Makefile 的版本

PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
# PKG_BUILD_DIR - 编译软件包的目录

PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install
# PKG_INSTALL_DIR - 软件包安装的目录

include $(INCLUDE_DIR)/kernel.mk
include $(INCLUDE_DIR)/package.mk

define Package/opencv-test
  SECTION:=wrtnode
  CATEGORY:=WRTnode
  SUBMENU :=demos
  TITLE:=opencv demo app 
  DEPENDS := +opencv
endef

##################################################
# SECTION - 软件包类型 
# CATEGORY - menuconfig中软件包所属的一级目录,如 WRTnode
# SUBMENU - menuconfig中软件包所属的二级目录,如 demos
# TITLE - 软件包标题,如 opencv demo app,在右方显示
# DESCRIPTION - 软件包的详细说明
# URL - 软件的原始位置,一般是软件作者的主页
# MAINTAINER - 软件包维护人员
# DEPENDS - 依赖项,运行本软件依赖的其他包,如 +opencv
#################################################

define Package/opencv-test/description
    WRTnode test program for opencv lib 
endef

define Build/Prepare
    mkdir -p $(PKG_BUILD_DIR)
    $(CP) ./src/* $(PKG_BUILD_DIR)/
endef

#################################################
# Build/Prepare,一组解包源代码和打补丁的命令,一般不需要。
# 这里创建了PKG_BUILD_DIR目录,复制的源代码到该目录。
#################################################

define Build/Compile
    $(MAKE) -C $(PKG_BUILD_DIR) \
        $(TARGET_CONFIGURE_OPTS) \
        LDFLAGS="$(TARGET_LDFLAGS)" \
        CFLAGS="$(TARGET_CFLAGS)" 
endef

#################################################
# Build/Compile,编译源代码命令。
# $(TARGET_CONFIGURE_OPTS) 、$(TARGET_CFLAGS)、 $(TARGET_LDFLAGS)等定义在rules.mk 
#################################################

define Package/opencv-test/install
    $(INSTALL_DIR) $(1)/usr/bin
    $(INSTALL_BIN) $(PKG_BUILD_DIR)/cv_test $(1)/usr/bin/
endef

#################################################
# cv_test 编译生成的可执行文件
#################################################

$(eval $(call BuildPackage,opencv-test))

对于Makefile的写法,可以在这里找到资料:http://wiki.openwrt.org/zh-cn/doc/devel/packagesarrow-up-right,由于Makefile对空格和tab区分得比较严格,所以一定以SDK内的格式为准。

cv_test.c

这个cv_test.carrow-up-right很简单,启动摄像头,拍摄6张照片,结束。

这是C的写法,C++的写法如下:

cv_test.c Makefile

第二个Makefilearrow-up-right在src目录中,是用来编译cv_test.c的。

Last updated