当前位置: 首页 > news >正文

做旅游网站的写手重庆seo网站

做旅游网站的写手,重庆seo网站,黑龙江新闻法治在线回放,江门公司做网站目录 1. 简介 2. 实例测试 2.1 实例介绍 2.2 创建工程 2.2.1 创建工程 2.2.2 获取路径 2.2.3 设置路径 2.2.4 打开工程 2.2.5 添加文件 2.2.6 启动 GUI 2.2.7 配置 csim 参数 3 常见错误 3.1 核心共享库报错 4. 总结 1. 简介 在《Vitis Accelerated Libraries …

目录

1. 简介

2. 实例测试

2.1 实例介绍

2.2 创建工程

2.2.1 创建工程

2.2.2 获取路径

2.2.3 设置路径

2.2.4 打开工程

2.2.5 添加文件 

2.2.6 启动 GUI

2.2.7 配置 csim 参数

3 常见错误

3.1 核心共享库报错

4. 总结


1. 简介

在《Vitis Accelerated Libraries 学习笔记--OpenCV 安装指南-CSDN博客》一文中,我详尽地介绍了 OpenCV 的安装过程。尽管 Vitis Vision 库的实现本身并不依赖于 OpenCV,但要运行库中的示例设计,OpenCV 是必需的。此外,在用户的测试平台上验证算法时,也可能会用到 OpenCV。在本文中,我们将深入探讨如何有效地利用 OpenCV 库来执行测试,确保您的设计能够在实际环境中达到预期的性能。

本文基于你了解 OpenCV 库的基本功能和它在图像处理和计算机视觉中的应用,然后,我会详细说明如何将 OpenCV 集成到 Vitis Vision 库的工作流中,以及如何使用 OpenCV 提供的函数来创建测试用例和验证设计。

2. 实例测试

2.1 实例介绍

以 Vitis Vision Library 中的 resize 内核为例,它的主要功能是执行图像的缩放操作。在 Vitis_Libraries/vision/L1/tests/resize/ 目录下,你会发现一系列文件夹,这些文件夹代表了不同的测试用例,用于验证和展示 resize 内核的功能:

  • resize_NPPC1_8UC1_8UC1_AREA
  • resize_NPPC1_8UC1_8UC1_BILINEAR
  • resize_NPPC1_8UC1_8UC1_NN
  • resize_NPPC1_8UC3_8UC3_AREA
  • resize_NPPC1_8UC3_8UC3_BILINEAR
  • resize_NPPC1_8UC3_8UC3_NN
  • resize_NPPC8_8UC1_8UC1_AREA
  • resize_NPPC8_8UC1_8UC1_BILINEAR
  • resize_NPPC8_8UC1_8UC1_NN
  • resize_NPPC8_8UC3_8UC3_AREA
  • resize_NPPC8_8UC3_8UC3_BILINEAR
  • resize_NPPC8_8UC3_8UC3_NN

我们先来了解一下这些文件夹的命名含义:

  • NPPC1 或 NPPC8: 这代表每个像素时钟周期(Number of Pixels Per Clock)的数量。NPPC1 表示每个时钟周期处理一个像素,而 NPPC8 表示每个时钟周期处理八个像素。
  • 8UC1 或 8UC3: 这指的是图像的类型。8UC1 表示 8 位无符号单通道图像,而 8UC3 表示 8 位无符号三通道图像。
  • AREA, BILINEAR, NN: 这些是 resize 函数使用的不同插值方法。AREA 是面积插值,BILINEAR 是双线性插值,NN 是最近邻插值。

最近邻插值(Nearest Neighbor, NN): 这是最简单的插值方法。它选择最接近目标位置的源像素值来填充目标像素。这种方法的计算速度快,但可能会导致图像在放大时出现块状效果。
双线性插值(Bilinear): 双线性插值考虑了最近的四个像素点,并基于它们的距离,计算加权平均值来确定新像素的值。这种方法比最近邻插值平滑,但在某些情况下可能会引入模糊。
面积插值(Area): 面积插值是一种更复杂的方法,它考虑了源图像中多个像素的区域,并计算这些像素的平均值来确定目标像素的值。这种方法在缩小图像时特别有用,因为它可以减少混叠效应,通常能得到更平滑的结果。

每种方法都有其优点和适用场景。最近邻插值适合对计算速度要求高的场合,双线性插值在保持图像细节的同时提供了平滑的效果,而面积插值则在减少图像缩小时的失真方面表现出色。选择哪种插值方法取决于具体的应用需求和预期的图像质量。

2.2 创建工程

通过 cmd 和 GUI 混合操作(实操下来,这个方法最容易理解)。

2.2.1 创建工程

cd /home/dong/Documents/test/resize
source /opt/Xilinx/Vitis_HLS/2022.1/settings64.sh
vitis_hls -gui # 在GUI中创建空白工程

通过命令行打开 Vitis HLS 界面,因为之后的操作步骤要退出 GUI 回到命令行。 

参考如下路径:

 

创建成功后,工程目录结构如下:

resize/├── resize_kernel/│      ├── solution1/│      └── hls.app└── vitis_hls.log

创建命令后,即可退出 GUI,回到 bash shell。 

2.2.2 获取路径

在 bash shell 中,通过 bash 命令获得如下3个路径。

1. XF_PROJ_ROOT 路径

XF_PROJ_ROOT 目录为 Vison 库的参考目录,在 vision 目录下运行 pwd 命令获得。

“/home/dong/Documents/vision”。

2. OPENCV_INCLUDE 路径

OPENCV_INCLUDE 是用来设置 OpenCV 头文件的路径。当你编译使用OpenCV的程序时,编译器会在这个路径下查找所需的头文件。可运行如下命令获得:

pkg-config --cflags opencv4 | sed 's/-I//g'

“/usr/local/include/opencv4” 。

 

3. OPENCV_LIB 目录

OPENCV_LIB 是用来设置OpenCV库文件的路径。在链接程序时,链接器会在这个路径下查找OpenCV的库文件。 可运行如下命令获得:

pkg-config --libs-only-L opencv4  | sed 's/-L//g'

“/usr/local/lib ”。

2.2.3 设置路径

进入 vitis_hls -i 赋值如下内容,三行分开复制并执行。

set XF_PROJ_ROOT /home/dong/Documents/vision
set OPENCV_INCLUDE /usr/local/include/opencv4
set OPENCV_LIB /usr/local/lib

clear,清除窗口内容。

2.2.4 打开工程

继续在命令模式中:

cd resize
open_project -reset NAME

其中,NAME 为工程名称,此例中,工程名称为 resize_kernel。

resize/├── resize_kernel/│      ├── solution1/│      └── hls.app└── vitis_hls.log

-reset:移除工程内已存在的所有数据,即将工程复位。每条新的 add_files 命令都会向现有
工程添加更多文件,多次添加同一个文件,可能引起错乱。

get_project -name,可查看是否打开工程。

 

2.2.5 添加文件 

在 <vitis lib>/vision/L1/tests/resize/resize_NPPC1_8UC1_8UC1_AREA 目录下,找到 run_hls.tcl 命令,找到 add_files 命令对应的行,添加文件。

1. 加速器的实现代码文件:

add_files "${XF_PROJ_ROOT}/L1/examples/resize/xf_resize_accel.cpp" -cflags " -I ${XF_PROJ_ROOT}/L1/tests/resize/resize_NPPC1_8UC1_8UC1_AREA -I${XF_PROJ_ROOT}/L1/include -I ./ -D__SDSVHLS__ -std=c++0x" -csimflags " -I ${XF_PROJ_ROOT}/L1/tests/resize/resize_NPPC1_8UC1_8UC1_AREA -I${XF_PROJ_ROOT}/L1/include -I ./ -D__SDSVHLS__ -std=c++0x"

添加成功后,显示:

INFO: [HLS 200-10] Adding design file '/home/dong/Documents/Vitis_Libraries-main/vision/L1/examples/resize/xf_resize_accel.cpp' to the project

2.  测试平台文件:

add_files -tb "${XF_PROJ_ROOT}/L1/examples/resize/xf_resize_tb.cpp" -cflags " -I ${XF_PROJ_ROOT}/L1/tests/resize/resize_NPPC1_8UC1_8UC1_AREA -I${OPENCV_INCLUDE} -I${XF_PROJ_ROOT}/L1/include -I ./ -D__SDSVHLS__ -std=c++0x" -csimflags " -I ${XF_PROJ_ROOT}/L1/tests/resize/resize_NPPC1_8UC1_8UC1_AREA -I${XF_PROJ_ROOT}/L1/include -I ./ -D__SDSVHLS__ -std=c++0x"

添加成功后,显示:

INFO: [HLS 200-10] Adding test bench file '/home/dong/Documents/Vitis_Libraries-main/vision/L1/examples/resize/xf_resize_tb.cpp' to the project

3. 设置 Top

找到 set_top 命令对应的行:

set_top resize_accel

2.2.6 启动 GUI

vitis_hls -p NAME

 -p:在 IDE 模式下打开现有工程。

在 script.tcl 目录中,可以看到之前的配置已经生效:

open_project resize_kernel
set_top resize_accel
add_files ../../Vitis_Libraries_main/vision/L1/examples/resize/xf_resize_accel.cpp -cflags "-I/home/dong/Documents/Vitis_Libraries_main/vision/L1/tests/resize/resize_NPPC1_8UC1_8UC1_AREA -I/home/dong/Documents/Vitis_Libraries_main/vision/L1/include -I./. -D__SDSVHLS__ -std=c++0x" -csimflags "-I/home/dong/Documents/Vitis_Libraries_main/vision/L1/tests/resize/resize_NPPC1_8UC1_8UC1_AREA -I/home/dong/Documents/Vitis_Libraries_main/vision/L1/include -I./. -D__SDSVHLS__ -std=c++0x"
add_files -tb ../../Vitis_Libraries_main/vision/L1/examples/resize/xf_resize_tb.cpp -cflags "-I/home/dong/Documents/Vitis_Libraries_main/vision/L1/tests/resize/resize_NPPC1_8UC1_8UC1_AREA -I/usr/local/include/opencv4 -I/home/dong/Documents/Vitis_Libraries_main/vision/L1/include -I. -D__SDSVHLS__ -std=c++0x -Wno-unknown-pragmas" -csimflags "-I/home/dong/Documents/Vitis_Libraries_main/vision/L1/tests/resize/resize_NPPC1_8UC1_8UC1_AREA -I/home/dong/Documents/Vitis_Libraries_main/vision/L1/include -I. -D__SDSVHLS__ -std=c++0x -Wno-unknown-pragmas"
open_solution "solution1" -flow_target vivado
set_part {xck26-sfvc784-2LV-c}
create_clock -period 10 -name default
#source "./resize_kernel/solution1/directives.tcl"
csim_design
csynth_design
cosim_design
export_design -format ip_catalog

2.2.7 配置 csim 参数

在示例目录下,找到 csim_design 命令对应的行,配置参数。

if {$CSIM == 1} {csim_design -ldflags "-L ${OPENCV_LIB} -lopencv_imgcodecs -lopencv_imgproc -lopencv_core -lopencv_highgui -lopencv_flann -lopencv_features2d" -argv "  ${XF_PROJ_ROOT}/data/128x128.png"
}

3 常见错误

3.1 核心共享库报错

/xx/xx/.../: error while loading shared libraries: libopencv_imgcodecs.so.4.4: cannot open shared object file: No such file or directory

意味着程序无法找到OpenCV的核心共享库文件。

解决办法:

使用以下命令行查找包含共享库 libopencv_imgcodecs.so.4.4 的文件夹:

sudo find / -name "libopencv_imgcodecs.so.4.4"

创建一个名为 /etc/ld.so.conf.d/opencv.conf 的文件,并向其中写入存储二进制文件的文件夹的路径。例如,我将 /usr/local/lib/ 写入我的 opencv.conf 文件。按如下方式运行命令行:

sudo ldconfig -v

 

4. 总结

在本系列学习笔记中,我们探讨了 Vitis Accelerated Libraries 和 OpenCV 的结合使用,强调了 OpenCV 在运行 Vitis Vision 库示例设计和验证用户测试平台算法中的重要性。通过详细的安装指南和实例测试,我们展示了如何将 OpenCV 集成到 Vitis Vision 库的工作流中,并利用其强大的函数库来创建和验证测试用例。

我们还讨论了如何解决常见的错误,例如找不到 OpenCV 核心共享库文件的问题,确保开发环境的顺利设置。通过这些步骤,使我们的工程设计在实际环境中能够达到预期的性能,同时也能够更好地理解和利用 Vitis Vision 库和 OpenCV 的强大功能。

http://www.mmbaike.com/news/26619.html

相关文章:

  • 手机网站二级域名免费申请网站com域名
  • 郑州网站建设公司哪家好app用户量排名
  • 用ps做招生网站关键词优化公司哪家强
  • 南宁网站建设怎么样aso优化推广公司
  • wordpress调取文章列表seo优化快速排名技术
  • wordpress 视频 模版山东seo百度推广
  • 论坛网站建设费用百度广告联系方式
  • 网站建设总经理岗位职责友情链接什么意思
  • 有哪些做动图网站天津seo结算
  • 做网站域名公司太原互联网推广公司
  • 必应网站提交入口网站制作需要多少钱
  • 网站开发成功案例网站seo诊断分析和优化方案
  • wordpress不显示文章长沙官网seo推广
  • 正能量视频素材免费下载网站百度推广客户端下载
  • 网站建设哪个好搜索引擎调价工具哪个好
  • 自建站排名整合营销策划方案模板
  • 启航网站建设百度如何做推广
  • 做公司网站写什么信息如何优化关键词排名到首页
  • 设计出色的网站青岛网站设计
  • 公司网站页面加密全网营销国际系统
  • 网络培训资格证书如何获得谷歌seo优化怎么做
  • 幼儿园网站建设的好处快速seo软件
  • 商超软件系统哪家好台州seo优化公司
  • 招聘网站咋做爱站关键词挖掘
  • 网站建设与管理的实训报告市场营销网络
  • 淄博学校网站建设哪家好关键词优化排名网站
  • 有域名如何建网站什么是搜索引擎竞价推广
  • 多米诺网站建设营销策略都有哪些
  • 做网站需要注意哪些东西免费宣传平台
  • 网页游戏网站建设搜索引擎优化的各种方法