机器视觉与人工智能应用开发技术
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.2.2 开发设计与实践

2.2.2.1 架构设计

本项目基于AiCam平台的开发框架(见图1.3)进行开发,开发流程如下:

(1)在aicam工程包的配置文件中添加摄像头(config\app.json),详细代码请参考2.1.2.1节。

(2)在aicam工程包中添加以下算法文件:

➲绘制直线与矩形:algorithm\image_lines_and_rectangles\image_lines_and_rectangles.py。

➲绘制圆和椭圆:algorithm\image_circle_and_ellipse\image_circle_and_ellipse.py。

➲绘制多边形:algorithm\image_polygon\image_polygon.py。

➲显示文字:algorithm\image_display_text\image_display_text.py。

(3)在aicam工程包中添加项目的前端应用static\image_marking。

(4)前端应用采用RESTFul获取处理后的视频流,返回base64编码的图像和结果数据。访问URL地址的格式如下(IP地址为边缘计算网关的地址):

前端应用JS(js\index.js)的处理示例如下:

2.2.2.2 功能与核心代码设计

1)绘制直线与矩形

通过OpenCV在画布上绘制直线与矩形的算法文件如下(algorithm\image_lines_and_rectangles\image_lines_and_rectangles.py):

2)绘制圆和椭圆

OpenCV提供了大量的图形绘制函数,可以满足多种场景的图形绘制需求,用户可以通过OpenCV在画布上绘制圆和椭圆,算法文件如下(algorithm\image_circle_and_ellipse\image_circle_and_ellipse.py):

3)绘制多边形

通过OpenCV在画布上绘制多边形的算法文件如下(algorithm\image_polygon\image_polygon.py):

4)显示文字

通过OpenCV在画布上显示文字的算法文件如下(algorithm\image_display_text\image_display_text.py):