10.摄像头的基本素养-画面
# 摄像头的基本素养-画面📸
# 1. IDE 模式,画面拉满💻
别把“图像识别”听得太玄乎,其实万变不离其宗——先得把画面搞出来。本篇就从最基本的显示开始,不搞 AI,不加滤镜,先把摄像头拍的画面,稳稳当当地在 IDE窗口里显示出来。
默认设备?照旧,GC2093 摄像头,CSI2 接口,全程板载,照搬即可。
# 2. 基础代码:开机即拍📷
import time, os, urandom
from media.display import Display
from media.media import MediaManager
import image
# 1. 设置画布分辨率,并按 16 对齐防止花屏
WIDTH, HEIGHT = 1920, 1080
WIDTH = (WIDTH + 15) // 16 * 16
# 2. 初始化显示与画布
img = image.Image(WIDTH, HEIGHT, image.ARGB8888)
Display.init(Display.VIRT, width=WIDTH, height=HEIGHT, fps=60)
MediaManager.init()
# 3. 循环绘制随机彩字
try:
while True:
img.clear()
for _ in range(8):
x = urandom.getrandbits(11) % WIDTH
y = urandom.getrandbits(11) % HEIGHT
color = tuple(urandom.getrandbits(8) for _ in range(3))
size = (urandom.getrandbits(5) + 2) * 8
img.draw_string_advanced(x, y, size, "你好K230!", color=color)
Display.show_image(img)
time.sleep(1)
except Exception as e:
print("出错啦:", e)
finally:
Display.deinit()
MediaManager.deinit()
time.sleep_ms(100)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 3. 函数知识点精华📚
名称 | 用法说明 |
---|---|
image.Image(w, h, fmt) | 创建一块画布,ARGB8888 支持彩色透明度,能画图能写字 |
Display.init(...) | 初始化显示设备,这里用的是 IDE 缓冲区模式 |
Display.show_image(img) | 把图像内容刷到 IDE 显示窗口里 |
img.clear() | 每轮刷新前要清空画布,否则会叠图 |
draw_string_advanced() | 支持中文的文字绘制函数,字体大小、颜色都可调 |
urandom.getrandbits(n) | 随机生成一个 n 位整数,用于随机坐标/颜色/字体大小 |
MediaManager.init() | 注册媒体系统,图像绘制和显示模块都需要 |
为了避免杂乱,这里不加参数,可以去官网查看API文档,非常详细
# 4. 踩坑提示⚠️
- 分辨率没对齐,画面直接花掉,用
(宽度 + 15) // 16 * 16
这招最稳。 Display.init()
不设置fps
有时不刷图,建议默认填个 60。- 如果你看到什么都没出来,检查是否运行在 IDE 下,别整错平台。
- 想换 LCD/HDMI?只要换掉
Display.VIRT
和尺寸参数,逻辑通用。
# 5. 后续方向🧭
画面搞定之后,你就可以:
- 接入摄像头图像,替代“喷字”的显示内容;
- 添加按钮交互、图片播放;
- 作为 AI 识别的显示输出前端。
一句话:搞清楚显示,万物皆可视。
# 参考资料
# 免责声明
本文档及所有内容(包括文字、图片、代码等)均为作者基于嘉立创庐山派K230开发板公开资料和个人实践经验整理分享,仅供学习和技术交流使用。
涉及的品牌、商标、图片与相关资源均归嘉立创官方所有,本文无任何商业意图或代理关系,内容不构成任何形式的官方承诺或保证。
用户应确保在合法合规的前提下使用相关资源。如有版权问题,请联系作者或嘉立创官方处理。
帮助我们改善此页面 (opens new window)
上次更新: 2025/07/12, 16:01:22