|
10| 3
|
[项目] 【花雕动手做】CanMV K230 AI 视觉模块之绘制一个矩形图案 |
![]() 什么是 CanMV K230? CanMV K230是一款高性价比的RISC-V边缘AI平台,凭借低功耗、强视觉处理能力和开放的开发生态,成为嵌入式AI开发的理想选择,尤其适合需要快速部署视觉与AI功能的创客、中小企业及教育场景。CanMV 是一套 AI 视觉开发平台,K230 是其核心芯片。该模块结合了图像采集、AI推理、边缘计算等能力,适合嵌入式视觉应用开发。 CanMV:类似 OpenMV 的图像处理框架,支持 Python 编程,简化视觉识别开发流程。 K230 芯片:嘉楠科技推出的 AIoT SoC,采用 RISC-V 架构,内置第三代 KPU(AI加速单元),算力高达 6 TOPS,性能是 K210 的 13.7 倍。 ![]() |
|
API 文档 draw_rectangle函数 在图像上绘制一个矩形。可以分别传入参数 x, y, w, h,也可以作为元组 (x, y, w, h) 一起传递。 color: 表示颜色的 RGB888 元组,适用于灰度或 RGB565 图像,默认为白色。对于灰度图像,还可以传递像素值(范围 0-255);对于 RGB565 图像,可以传递字节翻转的 RGB565 值。 thickness: 控制矩形边框的像素宽度,默认为 1。 fill: 设置为 True 时,将填充矩形内部,默认为 False。 该方法返回图像对象,允许通过链式调用其他方法。 不支持压缩图像和 Bayer 格式图像。 测试实验代码 |
|
基于 CanMV K230 AI 视觉识别模块的显示测试程序,核心功能是通过draw_rectangle()方法在屏幕上绘制一系列矩形图案,展示了图像创建、显示控制和图形绘制的基本流程。以下是代码解读: 一、整体结构 代码分为三个主要部分: 模块导入:引入必要的系统工具和显示相关库 核心函数display_test():实现图像创建、矩形绘制、显示控制的完整逻辑 程序入口:启动显示测试流程 二、关键代码逐段解读 1. 模块导入与常量定义 python 导入time用于延时,os用于系统资源管理,media.display和media.media是 CanMV K230 控制显示的核心库。 定义显示屏分辨率常量(需与实际硬件匹配,这里为 640×480)。 2. 核心函数display_test() 该函数是程序的主体,负责创建图像、绘制矩形、初始化显示并处理异常。 (1)创建背景图像 python image.Image():创建一个图像对象,参数为宽度、高度、像素格式(ARGB8888表示每个像素包含透明度 + 红、绿、蓝三原色,各 8 位精度)。 img.clear():清空图像缓存(初始化为黑色)。 img.draw_rectangle():绘制全屏白色矩形作为背景,参数说明: 0, 0:矩形左上角坐标(x, y) DISPLAY_WIDTH, DISPLAY_HEIGHT:矩形的宽和高(此处铺满整个屏幕) color=(255,255,255):白色(RGB 值,范围 0-255) fill=True:矩形内部填充指定颜色 (2)初始化显示与媒体资源 python Display.init():初始化显示屏,参数包括: Display.ST7701:显示屏驱动型号(根据硬件选择,此处为 ST7701) width/height:显示分辨率(与图像尺寸一致) to_ide=True:支持将图像输出到开发工具(方便调试时在电脑上预览)。 MediaManager.init():初始化媒体管理器,负责分配图像缓存、显示资源等底层硬件资源。 (3)绘制装饰性矩形图案 通过多次调用draw_rectangle()绘制不同位置、大小、颜色的矩形,构建层次感图案: python draw_rectangle()参数详解: x1, y1, width, height, color, thickness, fill x1, y1:矩形左上角坐标(屏幕左上角为原点 (0,0)) width, height:矩形的宽度和高度(像素) color:RGB 颜色元组(如(0,191,255)为天蓝色) thickness:边框线宽(仅当fill=False时有效,默认 1) fill:是否填充内部(True填充,False仅画边框) (4)显示图像并保持 python Display.show_image(img):将图像数据发送到显示屏,完成显示刷新。 无限循环确保图像持续显示(否则程序结束后屏幕会关闭)。 (5)异常处理与资源释放 python 异常处理确保程序在意外中断时不会崩溃。 资源释放步骤(deinit())是硬件控制的关键,避免占用硬件资源导致下次运行出错。 3. 程序入口 python 当脚本直接运行时,启用系统退出机制并调用display_test()函数启动流程。 三、核心技术点 draw_rectangle()方法:CanMV K230 绘制矩形的核心 API,通过坐标、尺寸、颜色和填充参数控制图形样式。 显示流程:创建图像→绘制内容→初始化显示→输出图像→释放资源,是嵌入式显示开发的通用流程。 资源管理:硬件设备(显示屏)需要显式初始化(init())和释放(deinit()),否则可能导致硬件冲突。 四、功能总结 该代码通过组合不同矩形图案,在 CanMV K230 的显示屏上展示了一个具有层次感的装饰性图形,验证了显示驱动和图形绘制功能的正确性,可作为入门示例理解 K230 的图像显示原理。 |
沪公网安备31011502402448© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed