- 机器视觉与人工智能应用开发技术
- 廖建尚等编著
- 396字
- 2025-02-17 20:34:55
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):

