问题描述
K230 RTOS OpenCV开发指南
OpenCV (Open Source Computer Vision Library)是一个跨平台的计算机视觉库,用于开发实时的图像处理、计算机视觉以及模式识别程序。K230 RTOS SDK 提供了针对 K230 RVV 优化的升级版 OpenCV 库,相比于原始版本 OpenCV ,能实现更高的性能。
K230 RTOS SDK 中已包含预先交叉编译好的升级版 OpenCV 加速库(位于src/rtsmart/libs/opencv/路径下),用户直接使用该静态库编译自己的可执行程序即可。
一、性能对比
下面通过对比 K230 RTOS SDK 增强版 OpenCV 库与官方 OpenCV 库的算子,带大家直观感受 RVV 加速带来的性能飞跃:
测试环境
- 开发板:K230 开发板
- 系统环境:K230 RTOS SDK
- 操作系统:RTOS
- 输入图片尺寸:1280x1080
测试耗时对比
| 算子 | 官方版OpenCV (v4.5.4) | K230 增强版OpenCV (xuantie v1.0.3) |
|---|---|---|
| inter | 38.839ms | 7.44669ms |
| media_blur | 61.4257ms | 6.47148ms |
| hist | 5.67603ms | 5.22174ms |
| warpaffine | 308.94ms | 32.6508ms |
| angle | 113.614ms | 17.8939ms |
| Canny | 205.45ms | 38.17ms |
| blur | 41.27ms | 3.96ms |
| cvtColor | 89.38ms | 3.88ms |
| dilate | 13.33ms | 1.95ms |
| erode | 13.34ms | 1.95ms |
| inter | 38.79ms | 7.47ms |
| resize | 6.52ms | 2.8ms |
(对多数算子均有性能提升,更全面的测试数据会在后续发出)
二、运行OpenCV 示例
1、我们在SDK中提供了5个示例代码
位于 src/rtsmart/examples/opencv_examples/ 路径下。

2、编译示例程序
在 menuconfig 打开 opencv 的示例程序的编译:
# 在 K230 RTOS SDK 根目录下使用 make menuconfig 配置编译选项
make menuconfig



设置完成后,使用 make log 重新编译固件,这些示例文件将自动打包到固件中。 把固件烧录到板子里面。
3、运行示例程序
在串口输入命令:
cd sdcard/app/examples/opencv_examples/
./opencv_grayscale_binarize.elf #灰度化和二值化示例
这个程序的主要功能是:读取一张彩色图像后,先将其转换为灰度图像并保存;接着对生成的灰度图像进行二值化处理,最终将处理后的图像保存下来。

运行后可在当前目录得到一张灰度图和二值化处理后的图,如下所示。
原图:

灰度图:

二值化处理:

RTOS 固件编译指南:
https://www.kendryte.com/k230_rtos/zh/main/userguide/how_to_build.html
RTOS SDK参考文档:
https://www.kendryte.com/k230_rtos/zh/main/app_develop_guide/3rd-party/opencv.html#
XuanTie OpenCV 用户手册 :
https://www.xrvm.cn/community/download?id=4385060250210865152
官方 OpenCV v4.5.4 文档 :
https://docs.opencv.org/4.5.4/