样例介绍
功能描述
该样例主要实现以下三种场景的抠图贴图:
1、抠图区域小于10*6。
2、贴图区域与抠图区域的缩放比例在[1/32, 16]范围内。
原理介绍
在该样例中,涉及的关键功能点,如下表所示。
初始化 |
|
---|---|
Device管理 |
|
Stream管理 |
|
内存管理 |
执行媒体数据处理时,若需要申请Device上的内存存放输入或输出数据,需调用acldvppMalloc申请内存、调用acldvppFree接口释放内存。 |
数据传输 |
调用aclrtMemcpy接口:
如果在板端环境上运行应用,则无需进行数据传输。 |
媒体数据处理 |
抠图贴图: 调用acldvppVpcCropAndPasteAsync接口按指定区域从输入图片中抠图,再将抠的图片贴到目标图片的指定位置,作为输出图片。 |
目录结构
样例代码结构如下所示。
├── data │ ├── dvpp_vpc_1920x1080_nv12.yuv //测试数据,需要按指导获取测试图片,放到data目录下 ├── inc │ ├── dvpp_process.h //声明媒体数据处理相关函数的头文件 │ ├── sample_process.h //声明模型处理相关函数的头文件 │ ├── utils.h //声明公共函数(例如:文件读取函数)的头文件 ├── src │ ├── acl.json //系统初始化的配置文件 │ ├── CMakeLists.txt //编译脚本 │ ├── dvpp_process.cpp //媒体数据处理相关函数的实现文件 │ ├── main.cpp //主函数,抠图贴图功能的实现文件 │ ├── sample_process.cpp //资源初始化/销毁相关函数的实现文件 │ ├── utils.cpp //公共函数(例如:文件读取函数)的实现文件 ├── CMakeLists.txt //编译脚本,调用src目录下的CMakeLists文件
父主题: 媒体数据处理V1(抠图贴图)