视觉识别模块
0、学前先看&供电说明
1、固件下载与烧录
2、安装编程环境
3、调试运行例程
4、离线运行例程
5、Micropython 快速入门
6、GUI程序使用说明
7、二维云台安装教程
8、FPIOA引脚分配
9、RGB灯
10、蜂鸣器
11、按键
12、串口通信
13、I2C通讯
14、PWM
15、WDT看门狗
16、定时器计时
17、傅里叶变换
18、SHA256加密
19、AES加密
20、多线程
21、文件读写
22、图像显示
23、触摸显示
24、摄像头显示
25、图像翻转
26、照相机
27、绘制圆形
28、绘制矩形
29、绘制椭圆
30、绘制箭头
31、绘制十字准心
32、绘制文字
汝城县职业中等专业学校知识库-信息中心朱老师编辑
-
+
首页
22、图像显示
 ## 例程实验效果简介 例程代码位于:【源码汇总 / 02.Basic / 15.Image.py】 我们用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 > >  显示图片的流程:  显示图像的代码如下: 本节例程需要用到Media的display和media模块,后续和多媒体相关的操作都需要引入这两个模块 除此之外还要引入image模块用于处理图片信息 from media.display import \* from media.media import \* import image,time Display.init(Display.ST7701, width = 640, height = 480, osd\_num = 1, to\_ide = True) \# 如果没有选配屏幕,则使用这一条初始化代码: \# Display.init(Display.VIRT, width = 1920, height = 1080) img\=image.Image("/sdcard/resources/wp.png", copy\_to\_fb\=True) MediaManager.init() \# 这里必须将png图片转换为rgb888或rgb565,否则无法显示 img = img.to\_rgb888() Display.show\_image(img) while True: pass ## 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**:使用引用对象的内存,不分配新内存 ### 构造函数 image.Image(path, alloc\=ALLOC\_MMZ, cache\=True, phyaddr\=0, virtaddr\=0, poolid\=0, data\=None) 从文件路径 `path` 创建图像对象,支持 BMP、PGM、PPM、JPG、JPEG 格式。 image.Image(w, h, format, alloc\=ALLOC\_MMZ, cache\=True, phyaddr\=0, virtaddr\=0, poolid\=0, data\=None) 创建指定大小和格式的图像对象。 * **w**:图像宽度 * **h**:图像高度 * **format**:图像格式 * **alloc**:内存分配方式(默认 ALLOC\_MMZ) * **cache**:是否启用内存缓存(默认启用) * **phyaddr**:物理内存地址,仅适用于 VB 区域 * **virtaddr**:虚拟内存地址,仅适用于 VB 区域 * **poolid**:VB 区域的池 ID,仅适用于 VB 区域 * **data**:引用外部数据对象(可选) 示例: \# 在 MMZ 区域创建 ARGB8888 格式的 640x480 图像 img = image.Image(640, 480, image.ARGB8888) \# 在 VB 区域创建 YUV420 格式的 640x480 图像 img = image.Image(640, 480, image.YUV420, alloc\=image.ALLOC\_VB, phyaddr\=xxx, virtaddr\=xxx, poolid\=xxx) \# 使用外部引用创建 RGB888 格式的 640x480 图像 img = image.Image(640, 480, image.RGB888, alloc\=image.ALLOC\_REF, data\=buffer\_obj) 手动释放图像内存: del img gc.collect() 更多关于Image模块的相关代码,可以参考嘉楠官方的API手册【[https://www.kendryte.com/k230\_canmv/main/zh/api/openmv/image.html](https://www.kendryte.com/k230_canmv/main/zh/api/openmv/image.html)】
admin
2025年12月30日 14:21
转发
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
Word文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码
有效期
AI