Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

C++例程

目录

cpp目录下提供了C++例程以供参考使用,具体情况如下:

序号 C++例程 说明
1 ocv_vidbasic.cpp 使用sophon-opencv硬件加速实现视频解码,并将视频记录为png或jpg格式

1. 环境准备

1.1 x86/arm PCIe平台

如果您在x86/arm平台安装了PCIe加速卡(如SC系列加速卡),可以直接使用它作为开发环境和运行环境。您需要安装libsophon、sophon-opencv和sophon-ffmpeg,具体步骤可参考x86-pcie平台的开发和运行环境搭建arm-pcie平台的开发和运行环境搭建

1.2 SoC平台

如果您使用SoC平台(如SE、SM系列边缘设备),刷机后在/opt/sophon/下已经预装了相应的libsophon、sophon-opencv和sophon-ffmpeg运行库包,可直接使用它作为运行环境。通常还需要一台x86主机作为开发环境,用于交叉编译C++程序。

2. 程序编译

C++程序运行前需要编译可执行文件。

2.1 x86/arm PCIe平台

可以直接在PCIe平台上编译程序:

mkdir build && cd build
cmake .. 
make
cd ..

编译完成后,会在当前目录下生成ocv_vidbasic.pcie。

2.2 SoC平台

通常在x86主机上交叉编译程序,您需要在x86主机上使用SOPHON SDK搭建交叉编译环境,将程序所依赖的头文件和库文件打包至soc-sdk目录中,具体请参考交叉编译环境搭建。本例程主要依赖libsophon、sophon-opencv和sophon-ffmpeg运行库包。

交叉编译环境搭建好后,使用交叉编译工具链编译生成可执行文件:

mkdir build && cd build
#请根据实际情况修改-DSDK的路径,需使用绝对路径。
cmake -DTARGET_ARCH=soc -DSDK=/path_to_sdk/soc-sdk ..  
make

编译完成后,会在当前目录下生成ocv_vidbasic.soc。

3. 测试

对于PCIe平台,可以直接在PCIe平台上测试;对于SoC平台,需将交叉编译生成的可执行文件及所需的模型、测试数据拷贝到SoC平台中测试。测试的参数及运行方式是一致的,下面主要以PCIe模式进行介绍。

3.1 参数说明

可执行程序默认有一套参数,请注意根据实际情况进行传参,ocv_vidbasic.pcie与ocv_vidbasic.pcie参数相同。以ocv_vidbasic.pcie为例,具体参数说明如下:

usage:
        ./ocv_vidbasic.pcie <input_video> <output_name> <frame_num> <yuv_enable> [card] [WxH] [dump.BGR or dump.YUV]
        --> test video record as png or jpg(enable yuv). And dump BGR or YUV raw data if you enable the dump.
params:
        <input_video>:           input video path.
        <output_name>:           output image name.
        <frame_num>:             the number of frames that need to be decoded.
        <yuv_enable>:            0 decode output BGR; 1 decode output YUV.
        <card>:                  device id.
        <WxH>:                   decoded image width and height.
        <dump.BGR or dump.YUV>:  dump.BGR dump BGR file; dump.BGR dump YUV file, this parameter is optional.

注意:如果是SoC平台,忽略[card]参数。

3.2 测试实例

./ocv_vidbasic.pcie road.mp4 out 300 0 0 1920x1080 dump.BGR

测试结束后,会将视频解码后再记录为jpg或png格式,保存到当前文件夹下。