项目实战:海思Hi3519AV100低分辨率作为图像处理,高分辨率作为图像加工输出方案

不想去成为一个伟大的程序员,只想成为一个具有良好习惯的优秀程序员。

前言

这个是在离职时那两天实现的,所以详细流程文档写在公司电脑上来了,忘记拷出来了,所以这里就稍微讲一下如何用海思进行比较好的图像处理操作。

正文

因为我们这个项目对接第三方的图像算法进行检测,我们这边需要获取图像的低分辨率图像作为它们图像检测处理的输入,然后根据检测结果进行图像的渲染输出。

一种方法是采用opencv来进行开发,这样需要实现底层camera驱动的对接、图像格式转换、以及图像的渲染,还有就是你需要去熟悉opencv的开发。

由于我对opencv只是有所了解,但进行开发不是很熟悉,由因为这个时间比较急,所以优先考虑基于海思平台的开发。具体方案我我就用文字描述了,因为开发环境都在公司没办法搞到图。

1.基于现有的sample_vio例程,如果你的摄像头sensor的驱动海思已经提供了那么我们之间就可以用,如果不是的话需要编写相应的sensor,具体的详细开发流程是在ISP的相关文档中,也可以模仿已有的sensor驱动实现。

2.关于低分辨率图像处理高分辨率图像输出,可以在sample_vio例程中基于vi双通道的例程进行开发,像我在《项目实战:海思Hi3519AV100利用硬件加速图像格式转换》中写的,调用接口获取其中一个vi通道的低分辨率原图像进行图像检测处理,另一个通道绑定VPSS并获取图像,根据检测结果判断是否渲染输出到vo模块中。

3.图像渲染,海思提供了很多硬件加速模块以及视频开发的API,又因为我们这边的渲染只是简单的对检测到的图像进行标识,所以我这边就用海思VGS模块的批量画线功能对高分辨率图像检测到的位置进行画矩形输出。

4.如果需要用到opencv开发,需要将makefile中的c编译器换成c++编译器,然后需要修改海思例程中一些c++编译器不能识别的写法错误。

文章每周持续更新,原创虽短,确不容易,欢迎大家点赞关注,一起交流技术一起提升成长。

你可能感兴趣的:(#,海思平台开发)