WRTnode怎么添加OpenCV支持
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,WRTnode怎么添加OpenCV支持,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。opencv libs库文件ipk编译openc
千家信息网最后更新 2025年12月03日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安全错误
数据库的锁怎样保障安全
网络安全和防护
徐汇区管理网络技术服务多少钱
北京理工大学数据库原理与设计
java获取服务器所有的网络
搜集网络安全信息的几种方法
商联软件开发有限公司
跑跑卡丁车游戏内测服务器
sql数据库中的并且符号
学校服务器怎么用4g网络
网络安全宣传周小报内容
软件开发初学者
数据库重启应用服务器需要重启吗
澳洲网络安全工作
疫情防控和网络安全视频
手机版如何登录服务器
万方数据库文献检索
软件开发 pm 简历
箭达天下河北互联网科技
面向对象的数据库管理系统
双控存储服务器 价格
网络安全法活动简报
数据库创建命令
广州信息软件开发外包
人工神经网络技术发展现状
做小程序服务器轻量型是什么意思
服务器开放安全组方法
新一代无线 移动网络技术
服务器内存条照片
数据库自动生成主键
华为看重创意信息的数据库业务