xilinx SDK opencv

创建petalinux 应用工程

  • 选择Application Project
  • 选择linux 平台
  • 选择对应处理器版本,psu_cortexa53
  • 选择C++,64位编译器
  • 如果app使用了扩展库的lib,需要加载petalinux的rootfs文件路径 如图所示 在这里插入图片描述
  • 创建空工程 在这里插入图片描述
  • 创建工程完成后会提示一些编译错误,原因是导入了petalinux文件系统路径造成的,需要配置一下参数编辑文集即可解决 输入–sysroot=/home/pt/ptwork/vivado/rootfs/rootfs
    在这里插入图片描述

增加opencv库文件

  • 通过增加文件系统的方法后,系统会默认增加petalinux文件的include路径,如图所示
    在这里插入图片描述-opencv对应的lib需要在该位置添加,根据需要,自行增加即可。
    在这里插入图片描述

硬件调试

参考文档UG1144 “Preparing the Build System for Debugging”
通过$ petalinux-config -c rootfs 配置需要的支持文件

  • 配置debug参数,选择System Debuger, Host选择测试板卡的IP地址.(设备启动时,会打印板卡的ip地址)
    在这里插入图片描述

软件调试

在没有硬件支持的情况下也需要进行软件的仿真,这时可以利用xsdk的Linux GCC工具,将软件编译成Linux可执行文件进行仿真.方法如下

创建Linux GCC 配置

1 新建Linux GCC 配置文件方法

  • 新建一个configurations文件
    在这里插入图片描述
    选择Executable > Linux GCC > Debug
    设置编译选项从Debug修改为OSDebug
  • 添加GCC C++ Linker 文件
    在这里插入图片描述
  • 添加include 路径在这里插入图片描述

2 通过拷贝Debug配置文件方法

  • 新建configurations 并激活
    在这里插入图片描述
  • 修改C/C++ Build > Settings 配置参数
    由于是通过Debug配置复制过来的,因此有些配置可以不必从新设置
    参数与方法1 相同
  • 修改编译工具链
    在这里插入图片描述
    –将Xilinx Arm v8 GNU/Linux Toolchain 修改为Linux GCC

调试

右键OSDebug > shipdetec.elf.
执行 Debug As > 5 Local C/C++ Application

提示缺少动态链接库文件时,需要在shell执行如下命令

export LD_LIBRARY_PATH=/home/pt/ptwork/gitWork/opencv-3.3.0/build/lib:$LD_LIBRARY_PATH
迈德威视相机SDK提供了一些接口用于图像采集和控制,而OpenCV是一个强大的开源计算机视觉库,提供了丰富的图像处理和计算机视觉算法。可以使用迈德威视相机SDKOpenCV结合使用,实现图像采集、处理和分析。 具体步骤如下: 1. 安装迈德威视相机SDK,并配置好相机。 2. 下载安装OpenCV,并配置好环境变量。 3. 使用SDK提供的接口获取相机采集的图像数据。 4. 将获取的图像数据转换为OpenCV格式的图像数据。 5. 使用OpenCV提供的图像处理和计算机视觉算法对图像进行处理分析。 下面是一个简单的示例代码,用于从迈德威视相机采集图像并进行边缘检测: ```cpp #include <opencv2/opencv.hpp> #include <mvDeviceManager.h> using namespace cv; int main() { // 初始化相机 mvIMPACT::acquire::DeviceManager devMgr; mvIMPACT::acquire::Device* pDev = devMgr.getDeviceByIndex(0); mvIMPACT::acquire::FunctionInterface fi(pDev); // 设置相机参数 mvIMPACT::acquire::ImageFormatControl imgControl(fi); imgControl.pixelFormat.write(mvIMPACT::acquire::ibpfRGB888Packed); // 创建OpenCV窗口 namedWindow("Image", WINDOW_AUTOSIZE); namedWindow("Edges", WINDOW_AUTOSIZE); // 获取图像并转换为OpenCV格式 mvIMPACT::acquire::Request* pRequest = NULL; fi.imageRequestSingle(); pRequest = fi.imageRequestWaitFor(2000); Mat image(pRequest->imageHeight.read(), pRequest->imageWidth.read(), CV_8UC3, pRequest->imageData.read()); // 边缘检测 Mat gray, edges; cvtColor(image, gray, COLOR_BGR2GRAY); Canny(gray, edges, 50, 150, 3); // 显示图像 imshow("Image", image); imshow("Edges", edges); // 释放资源 fi.imageRequestUnlock(pRequest); destroyAllWindows(); return 0; } ``` 需要注意的是,不同的相机SDKOpenCV版本可能会有不同的配置和接口调用方法,需要根据具体情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值