WRTnode怎么添加OpenCV支持
发表于:2025-01-27 作者:千家信息网编辑
千家信息网最后更新 2025年01月27日,WRTnode怎么添加OpenCV支持,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。opencv libs库文件ipk编译openc
千家信息网最后更新 2025年01月27日WRTnode怎么添加OpenCV支持
WRTnode怎么添加OpenCV支持,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
opencv libs库文件ipk编译
opencv ipk源码
利用openwrt package的编译机制仅仅需要一个Makefile即可编译opencv。
为何会如此简单神奇,下面就对Makefile详解(个人看法,欢迎指正):
$vim Makefile
include $(TOPDIR)/rules.mk PKG_NAME:=opencv # PKG_NAME -软件包的名字, 在 menuconfig 和 ipkg 显示PKG_VERSION:=2.4.8 # PKG_VERSION -软件包的版本,主干分支的版本正是我们要下载的PKG_RELEASE:=1 # PKG_RELEASE -这个 makefile 的版本PKG_USE_MIPS16:=0 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).zip # PKG_SOURCE -要下载的软件包的名字,一般是由 PKG_NAME 和 PKG_VERSION 组成PKG_SOURCE_URL:=http://downloads.sourceforge.net/project/opencvlibrary/opencv-unix/2.4.8/ # PKG_SOURCE_URL -下载这个软件包的链接 ,从网上得到的PKG_MD5SUM:=50cc1433b3654074206f5b3dbfd49848 ################################################### 软件包的 MD5 值,校验值,得到MD5的值的方法#$ ./scripts/update-package-md5sum ....../opencv/#PKG_CAT:= unzip#PKG_CAT -解压软件包的方法 (zcat, bzcat, unzip)##################################################include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/cmake.mk define Package/opencv/Default/description the Open Source Computer Vision Library for linux endef define Package/opencv SECTION:=libs CATEGORY:=Libraries TITLE:= opencv-2.4.8 DEPENDS:=+libpthread +librt +libstdcpp +zlib +libjpeg endef ###################################################SECTION - 软件包类型 #CATEGORY - menuconfig中软件包所属的一级目录,如 Libraries#SUBMENU - menuconfig中软件包所属的二级目录(没有用到)#TITLE - 软件包标题#DESCRIPTION - 软件包的详细说明#URL - 软件的原始位置,一般是软件作者的主页#MAINTAINER - (optional) 软件包维护人员#DEPENDS - (optional) 依赖项,运行本软件依赖的其他包#################################################PKG_INSTALL:=1 CMAKE_OPTIONS += -DWITH_LIBV4L:BOOL=OFF -DBUILD_opencv_ts:BOOL=OFF##################################################CMAKE_OPTIONS #例如不想编译libv4l库、ts等,就选择OFF。#################################################define Build/InstallDev $(INSTALL_DIR) $(1)/usr/include $(CP) $(PKG_INSTALL_DIR)/usr/include/opencv $(1)/usr/include/ $(CP) $(PKG_INSTALL_DIR)/usr/include/opencv2 $(1)/usr/include/ $(INSTALL_DIR) $(1)/usr/lib $(CP) $(PKG_INSTALL_DIR)/usr/lib/libopencv* $(1)/usr/lib/ endef ################################################## define Build/InstallDev #生成的头文件和库放到 #./staging_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/usr/include 和 ./staging_dir/target- mipsel_24kec+dsp_uClibc-0.9.33.2/usr/lib 下#PKG_INSTALL_DIR ./trunk/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/opencv-2.4.8/ipkg-install #################################################define Package/opencv/install $(INSTALL_DIR) $(1)/usr/include $(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/ $(INSTALL_DIR) $(1)/usr/lib $(CP) $(PKG_INSTALL_DIR)/usr/lib/libopencv* $(1)/usr/lib/ endef $(eval $(call BuildPackage,opencv))##################################################这是最为关键的BuildPackage宏。它是在$(INCLUDE_DIR)/package.mk文件里定义的。BuildPackage宏只要求 一个参数,即要编译的软件包名,在本例中是"opencv"。所有其他信息都通过宏来获得,这提供了一种内在的简洁性。比如BuildPackage需要软件包的一大串描述信息,我们并不要向它传递冗长的参数,因为我们已经约定描述信息定义在DESCRIPTION宏,BuildPackage从里面读取 就可以了。# Build/Compile (可选) # 编译源代码命令# Package/install # 软件安装命令,主要是把相关文件拷贝到指定目录,如配置文件。 #################################################
opencv测试程序的编译
opencv-test ipk源码
下面我们利用opencv-test这个demo来测试opencv libs。测试程序实现功能是从摄像头读取图片,保存在当前目录。由于存储空间受限,就存6张图片。 下面是生成opencv-test ipk包所需要的Makefile,其编译方法与其他任何ipk包的编译方法完全一样。
$vim Makefielinclude $(TOPDIR)/rules.mkPKG_NAME:=opencv-testPKG_RELEASE:=1PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-installinclude $(INCLUDE_DIR)/kernel.mkinclude $(INCLUDE_DIR)/package.mkdefine Package/opencv-test SECTION:=wrtnode CATEGORY:=WRTnode SUBMENU :=demos TITLE:=opencv demo app DEPENDS := +opencvendef##################################################DEPENDS := +opencv ,依赖opencv lib#################################################define Package/opencv-test/description WRTnode test program for opencv libendefdefine Build/Prepare mkdir -p $(PKG_BUILD_DIR) $(CP) ./src/* $(PKG_BUILD_DIR)/endefdefine Build/Compile $(MAKE) -C $(PKG_BUILD_DIR) \ $(TARGET_CONFIGURE_OPTS) CFLAGS="$(TARGET_CFLAGS)" \ LDFLAGS="$(TARGET_LDFLAGS)"endef##################################################$(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))
而opencv-test的源码和编译二进制代码的Makefile在src目录下。
备注:opencv应用程序几乎可以认为是跨平台的,我们可以在x86的windows或Mac下面进行开发,将与图形窗口显示和键盘输入等OpenWrt不能支持的代码去掉以后,即可保证在WRTnode上顺利编译通过并执行。
关于WRTnode怎么添加OpenCV支持问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。
软件
软件包
编译
文件
方法
目录
支持
信息
源码
版本
程序
问题
测试
生成
代码
参数
名字
命令
图片
所属
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
武装突袭3僵尸服务器玩法
sql2016创建数据库
大学里的计算机网络技术学什么
沧州工贸学校计算机网络安全
手机版最强服务器
甘肃首选dns服务器云空间
火山软件开发平台 破解版
轻量化软件开发
爱软件开发
我的起源服务器开几个
多功能网络技术服务项目
高职网络技术题
江苏电脑软件开发服务费
传奇 服务器认证失败
星河斗罗服务器下载
盐田服务器系统运维
outlook服务器搭建教程
打印机服务器架设
数据库中sql基本语句
服务器怎么连接到网线
dns服务器密码查看方法
逆战的服务器
双峰县网吧服务器
软件开发是属于什么专科
网络安全日常监控表
网络安全初中版手抄报图片
网络工程和网络技术是一回事吗
网络安全ipv6
甘肃农信无法连接到服务器云空间
服务器怎么连接到网线