Hi3516DV500 SVP_NNN添加opencv库记录

2023-10-13 00:36

本文主要是介绍Hi3516DV500 SVP_NNN添加opencv库记录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

默认没有带opencv库,但是实际项目中需要用到opencv库,因此添加一下此库;

1:编译opencv源码,这里具体可以参考

海思Hi3516移植opencv以及错误调试_海思hi3516摄像头开发-CSDN博客

2:在工程的根目录下新建一个3rdparty文件用于存放第三方的库,将编译安装好的库拷贝至3rdparty下并命名为opencv

3:修改src下的CMakeLists.txt,重点可以看一下#opencv的部分,总的说就是查找opencv的库,并链接到库即可

# CMake lowest version requirement
cmake_minimum_required(VERSION 3.5.1)# project information
project(ACL_CLASSIFICATION_RESNET50)# Compile options
add_compile_options(-std=c++11-fPIC-fstack-protector-all-D_FORTIFY_SOURCE=2 -O2)# Specify target generation path
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY  "../../../out")
set(CMAKE_CXX_FLAGS_DEBUG "-fPIC -O0 -g -Wall")
set(CMAKE_CXX_FLAGS_RELEASE "-fPIC -O2 -Wall -s")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,relro,-z,now,-z,noexecstack -fPIE -pie")
set(CMAKE_SKIP_RPATH TRUE)# Header path
include_directories(
$ENV{DDK_PATH}/acllib/include/../inc/../3rdparty/opencv/opencv-3.4.3/lib
)# add host lib path
if (target MATCHES "Simulator_Function" OR target MATCHES "Simulator_Instruction" OR target MATCHES "Simulator_Performance")set(ENV{NPU_HOST_LIB} $ENV{DDK_PATH}/toolkit/tools/sim/lib)
else()set(ENV{NPU_HOST_LIB} $ENV{DDK_PATH}/acllib/lib64/stub) #this case
endif()# opencv
set(OpenCV_DIR "../3rdparty/opencv/opencv-3.4.3/share/OpenCV")
# 查找opencv的path
find_package(OpenCV REQUIRED)
# 打印opencv的相关信息
message(STATUS "OpenCV library status:")
message(STATUS "version: ${OpenCV_VERSION}")
message(STATUS "libraries: ${OpenCV_LIBS}")
message(STATUS "include path: ${OpenCV_INCLUDE_DIRS}")
#
set(LIB_PATH $ENV{NPU_HOST_LIB} )
MESSAGE(NPU_HOST_LIB=$ENV{NPU_HOST_LIB})
link_directories(${LIB_PATH})
set(OPENCV_LIB ${OpenCV_DIR})
link_directories(${OPENCV_LIB})
message(${OPENCV_LIB})
FILE(GLOB SAMPLE_SRC_FILE *.cpp)add_executable(main ${SAMPLE_SRC_FILE})if (target MATCHES "Simulator_Function")target_link_libraries(main funcsim  )
elseif (target MATCHES "Simulator_Instruction" OR target MATCHES "Simulator_Performance")target_link_libraries(main instsim  )
else()target_link_libraries(main svp_acl ss_mpi_sysmem ss_mpi_km pthread securec dl protobuf-c stdc++ ${OpenCV_LIBS})
endif()install(TARGETS main DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})

4:cmake测试

5:代码测试,头文件包含opencv的头文件

至此opencv库移植成功

这篇关于Hi3516DV500 SVP_NNN添加opencv库记录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/199522

相关文章

Java使用SLF4J记录不同级别日志的示例详解

《Java使用SLF4J记录不同级别日志的示例详解》SLF4J是一个简单的日志门面,它允许在运行时选择不同的日志实现,这篇文章主要为大家详细介绍了如何使用SLF4J记录不同级别日志,感兴趣的可以了解下... 目录一、SLF4J简介二、添加依赖三、配置Logback四、记录不同级别的日志五、总结一、SLF4J

在Spring Boot中浅尝内存泄漏的实战记录

《在SpringBoot中浅尝内存泄漏的实战记录》本文给大家分享在SpringBoot中浅尝内存泄漏的实战记录,结合实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录使用静态集合持有对象引用,阻止GC回收关键点:可执行代码:验证:1,运行程序(启动时添加JVM参数限制堆大小):2,访问 htt

在PyCharm中安装PyTorch、torchvision和OpenCV详解

《在PyCharm中安装PyTorch、torchvision和OpenCV详解》:本文主要介绍在PyCharm中安装PyTorch、torchvision和OpenCV方式,具有很好的参考价值,... 目录PyCharm安装PyTorch、torchvision和OpenCV安装python安装PyTor

openCV中KNN算法的实现

《openCV中KNN算法的实现》KNN算法是一种简单且常用的分类算法,本文主要介绍了openCV中KNN算法的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录KNN算法流程使用OpenCV实现KNNOpenCV 是一个开源的跨平台计算机视觉库,它提供了各

OpenCV图像形态学的实现

《OpenCV图像形态学的实现》本文主要介绍了OpenCV图像形态学的实现,包括腐蚀、膨胀、开运算、闭运算、梯度运算、顶帽运算和黑帽运算,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起... 目录一、图像形态学简介二、腐蚀(Erosion)1. 原理2. OpenCV 实现三、膨胀China编程(

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

opencv图像处理之指纹验证的实现

《opencv图像处理之指纹验证的实现》本文主要介绍了opencv图像处理之指纹验证的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、简介二、具体案例实现1. 图像显示函数2. 指纹验证函数3. 主函数4、运行结果三、总结一、

MySQL INSERT语句实现当记录不存在时插入的几种方法

《MySQLINSERT语句实现当记录不存在时插入的几种方法》MySQL的INSERT语句是用于向数据库表中插入新记录的关键命令,下面:本文主要介绍MySQLINSERT语句实现当记录不存在时... 目录使用 INSERT IGNORE使用 ON DUPLICATE KEY UPDATE使用 REPLACE