# 基于Linux的相机 **Repository Path**: oivd/camera-based-on-linux ## Basic Information - **Project Name**: 基于Linux的相机 - **Description**: 基于Linux的相机 - **Primary Language**: C - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2023-09-29 - **Last Updated**: 2024-02-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于Linux的多功能相机 #### 描述 1. 从用户空间使用V4L2子系统, 了解V4L2应用编程, 熟悉UVC Camera图像采集流程; 2. 使用Framebuffer子系统编写LCD驱动, 了解LCD显示原理, 熟悉fb_info的编程思路; 3. 通过编写USB鼠标驱动, 熟悉USB驱动框架, 熟知输入设备(input_event)和数据传输(urb)实现的关键流程; #### 项目框架 1. video_controller: 负责管理视频设备, 定义了视频设备相关的数据结构和操作函数; 2. display_controller: 显示设备管理模块, 抽象出一些操作显示设备的函数指针, 在display_framebuffer中已实现操作函数; 3. image_handler: 负责管理图像处理的对象, 抽象出图像处理相关的函数指针, 由不同的图像处理模块去实现; 4. photo_handler: 使用双向循环链表实现的相册管理模块, 提供相册操作接口; 5. mouse_controller: 鼠标控制模块, 处理鼠标事件, 返回对应的键值; #### 功能说明 1. 摄像头采集功能:多摄像头采集未实现; 2. LCD显示功能: 将采集到的摄像头数据显示到LCD上; 3. 鼠标控制功能: 使用鼠标控制和切换到不同功能, 左键拍照, 中键切换摄像头,右键切换相册和显示功能; 4. 相册功能: 按下鼠标左键存储一帧数据(拍照), 滚轮滑动切换图片; 5. 网络传输功能(未实现): #### 使用说明 1. 启动程序: video2lcd ; #### 技术要点 #### 参与贡献 1. 96oivd