|
8| 3
|
[项目] 【花雕动手做】CanMV K230 AI 视觉之摄像头图像水平翻转 |
本帖最后由 驴友花雕 于 2025-11-6 08:36 编辑 ![]() 什么是 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、常见的翻转类型(按方向划分) 水平翻转(左右镜像)图像沿垂直中轴线对称反转,类似照镜子的效果(左变右、右变左)。▶ 适用场景:摄像头镜头朝向错误(如自拍时画面左右颠倒)、视频通话时对方看到的画面与自己动作镜像(需矫正为正向)。 垂直翻转(上下颠倒)图像沿水平中轴线反转,画面上下颠倒(顶部变底部、底部变顶部)。▶ 适用场景:摄像头倒装(如监控摄像头为隐藏安装而倒置固定在天花板)、硬件驱动默认输出方向错误(如部分 USB 摄像头初始画面颠倒)。 旋转(90°/180°/270°)严格来说属于 “旋转” 而非单纯 “翻转”,但常被归为同类调整。通过顺时针或逆时针旋转图像,解决摄像头侧装(如竖屏设备中横装的摄像头)导致的画面倾斜问题。▶ 适用场景:车载摄像头侧装、竖屏显示器搭配横置摄像头(如手机竖拍时画面需要旋转 90°)。 2、实现方式(硬件 / 软件层面) 图像翻转的处理可在采集端或显示端完成,具体方式取决于设备功能: 1. 硬件层面(摄像头 / 芯片自带功能) 部分摄像头内置翻转电路或通过 ISP(图像信号处理器)直接输出翻转后的图像,无需额外软件处理,延迟更低(如监控摄像头的 “倒装模式”,在硬件中预设垂直翻转)。 原理:在图像传感器输出原始数据后,通过芯片内部逻辑调整像素排列顺序(如垂直翻转时,将第 1 行像素与最后 1 行对调)。 2. 软件层面(系统 / 应用程序处理) 若硬件不支持,可通过软件算法对图像数据进行翻转,常见于手机、电脑等设备: 系统级设置:在摄像头驱动或设备设置中勾选 “水平翻转”“垂直翻转”(如 Windows 的 “相机” 应用设置、Android 的摄像头参数配置)。 应用级处理:视频软件(如 OBS 直播软件、Zoom 会议软件)通过图像算法实时翻转画面(如调用 OpenCV 的flip函数,参数控制翻转方向)。 原理:通过代码遍历图像像素矩阵,重新排列像素位置(例如水平翻转时,交换每行的左右像素;垂直翻转时,交换每列的上下像素)。 3、典型应用场景 监控摄像头:倒装在天花板时,通过垂直翻转让画面恢复正向(避免观看者仰头 “歪脖子”)。 手机 / 平板自拍:前置摄像头默认输出镜像画面(符合人眼习惯),但部分场景(如扫码)需关闭镜像(水平翻转)以确保二维码正常识别。 直播 / 视频会议:主播通过水平翻转修正画面左右颠倒,让观众看到与实际动作一致的方向。 工业检测:摄像头斜向安装时,通过旋转调整画面至正向,便于机器视觉算法分析(如检测产品缺陷时需画面方向统一)。 ![]() ![]() ![]() |
|
【花雕动手做】CanMV K230 AI视觉识别模块之摄像头图像水平翻转(镜像) 描述 配置图像传感器是否进行水平镜像。 语法 sensor.set_hmirror(enable) 参数 参数名称 描述 输入/输出 enable True 开启水平镜像功能 False 关闭水平镜像功能 输入 返回值 返回值 描述 无 举例 sensor.set_hmirror(True) 项目测试实验代码 代码核心功能解析 1. 水平镜像实现 python 功能:启用摄像头水平镜像 效果:图像左右翻转,如同照镜子 应用场景: 前置摄像头应用 需要镜像显示的场合 文字识别前的预处理 2. 图像处理流水线 text 摄像头采集 → 水平镜像处理 → RGB565格式转换 → 显示输出 3. 资源管理特点 异常安全:使用try-except-finally确保资源正确释放 渐进式初始化:按顺序初始化各组件 完整清理:确保所有硬件资源都被正确释放 4. 关键参数说明 分辨率:640×480 - 平衡性能与清晰度 像素格式:RGB565 - 节省内存的16位彩色格式 显示模式:ST7701驱动 + IDE输出 - 便于调试 技术要点 镜像设置的时机 在sensor.reset()之后立即设置set_hmirror(True),确保在数据流开始前就配置好镜像参数。 资源释放顺序 严格按照以下顺序清理: 停止传感器 关闭显示 释放媒体资源 这个程序展示了如何在CanMV K230模块上实现基本的摄像头镜像功能,代码结构清晰,异常处理完善,适合作为计算机视觉项目的基础模板。 |
沪公网安备31011502402448© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed