| 
 
 12| 4
 
 | 
[项目] 【花雕动手做】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 倍。 ![]() ![]()  | 
| 
知识点 图像显示是指将电子信号转换为视觉图像的技术,广泛应用于电视、电脑、手机等各种电子设备中。以下是关于图像显示的详细介绍: 1、图像显示原理 不同的显示技术其原理有所不同,常见的显示技术原理如下: LCD(液晶显示):通过液晶分子的电光效应来控制光线的透射率。LCD 由两片玻璃板夹持液晶层,液晶分子在无电场作用时呈螺旋排列,允许光线通过;施加电场时,液晶分子沿电场方向排列,改变光线的偏振状态,从而控制光线的透过或阻挡,形成图像。 OLED(有机发光二极管显示):利用有机材料在电场作用下发光的特性。OLED 的每个像素由红、绿、蓝三种发光材料组成,通过控制电流比例可生成各种颜色。其结构通常包括阳极、阴极和多层有机薄膜,电子和空穴注入、传输、复合形成激子,激子辐射退激发出光子,实现图像显示。 LED 显示:利用发光二极管发光,通过将大量的 LED 组合在一起来显示图像。其中,Mini LED 适用于 LCD 背光和小间距显示屏,Micro LED 采用自发光技术,无需背光源,具有更高的亮度、更广的色域和更快的响应时间。 DLP(数字光处理):利用数字微镜器件(DMD)来控制光线的反射。DMD 芯片由数百万个微小镜面组成,每个镜面可以独立翻转,以控制光线的反射或吸收,结合色轮快速切换红、绿、蓝三种颜色的光,合成彩色图像。 2、图像类型 灰度图像:也叫单通道图像,用不同饱和度的黑色来表示每个图像点,每个像素点只需要一个灰度值,取值范围通常是 0-255。 彩色图像:多通道图像,常见的如 RGB 彩色图像,由 R(红色)、G(绿色)、B(蓝色)三原色按比例混合而成,每个像素需要 3 个值来表示。还有 RGBA 格式,在 RGB 基础上增加了 Alpha 通道,用于控制图像的透明度。 二值化图像:将像素值简化成黑白两色,通过阈值分割实现,像素值通常为 0(黑)或 255(白)。 3、图像显示技术的应用领域 消费电子:广泛应用于手机、电脑、电视等设备的屏幕,为用户提供清晰、色彩鲜艳的视觉体验。 医疗成像:如 X 光、CT、MRI 等医学影像设备,通过图像显示技术将人体内部结构以可视化的方式呈现给医生,辅助诊断疾病。 卫星遥感:用于显示卫星拍摄的地球表面图像,帮助科学家进行地理信息分析、环境监测等。 虚拟现实与增强现实:为用户提供沉浸式的视觉体验,使虚拟场景和现实场景能够以图像的形式呈现给用户。 ![]() ![]() ![]()  | 
| 
我们用CanMV IDE打开例程代码,将K230用USB线连接到电脑上 这里需要准备PNG格式的图片 按照手册描述jpeg格式的图片也可以,但实际测试发现效果没有PNG格式的图片好,可以先把想要显示的图片转换为PNG 这里已经准备好了二张图片,路径如下【/sdcard/resources/wp.png】 ![]() ![]() 我们打开例程代码,点击左下角的运行按钮,可以看到屏幕上(和帧缓冲区里)会显示出我们准备好的图片 *注:图片的尺寸不能超过Display显示设备的尺寸限制,如果使用配套屏幕,则分辨率要限制在 640x480 *位深为8的PNG图像无法正常加载,IDE会报错:RuntimeError: given output image colortype or bitdepth not supported for color conversion 可以使用我们资料里提供的PNG位深转换器来转换图片的位深为24或32 ![]() ![]()  | 
| 
【花雕动手做】CanMV K230 AI视觉识别模块之使用图像显示 项目测试实验代码 Image 模块 Image 类是机器视觉处理中的基础对象。此类支持从 Micropython GC、MMZ、系统堆、VB 区域等内存区域创建图像对象。此外,还可以通过引用外部内存直接创建图像(ALLOC_REF)。未使用的图像对象会在垃圾回收时自动释放,也可以手动释放内存。 支持的图像格式如下: BINARY GRAYSCALE RGB565 BAYER YUV422 JPEG PNG ARGB8888(新增) RGB888(新增) RGBP888(新增) YUV420(新增) 支持的内存分配区域: ALLOC_MPGC:Micropython 管理的内存 ALLOC_HEAP:系统堆内存 ALLOC_MMZ:多媒体内存 ALLOC_VB:视频缓冲区 ALLOC_REF:使用引用对象的内存,不分配新内存 构造函数 从文件路径 path 创建图像对象,支持 BMP、PGM、PPM、JPG、JPEG 格式。 创建指定大小和格式的图像对象。 w:图像宽度 h:图像高度 format:图像格式 alloc:内存分配方式(默认 ALLOC_MMZ) cache:是否启用内存缓存(默认启用) phyaddr:物理内存地址,仅适用于 VB 区域 virtaddr:虚拟内存地址,仅适用于 VB 区域 poolid:VB 区域的池 ID,仅适用于 VB 区域 data:引用外部数据对象(可选) 示例: 手动释放图像内存:  | 
 沪公网安备31011502402448© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed