# CameraManager **Repository Path**: chhw/camera-manager ## Basic Information - **Project Name**: CameraManager - **Description**: 操作多摄像头进行拍照、录像功能演示。采用avalonia,可跨平台;采用OpenCvSharp4进行摄像头操作;采用CommunityToolKit进行mvvm构建。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2026-03-17 - **Last Updated**: 2026-03-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README The project does not yet contain a README.md file. You may refer to the following content to create one: --- # CameraManager CameraManager is a camera management application based on Avalonia UI, designed to detect, start, and stop camera devices, and supports photo capture and video recording. ## Features - Automatically detects available camera devices - Start/stop individual or multiple cameras - Capture photos and save image files - Record videos and save to a specified directory - Supports the MVVM architecture, offering good extensibility ## Technology Stack - C# - Avalonia UI - OpenCvSharp4 (for camera data processing) - INotifyPropertyChanged and ObservableObject for data binding - IValueConverter for data type conversion (e.g., Mat to Image) ## Project Structure - **Models**: Contains `CameraDevice` and `CameraManager`, responsible for camera device management and operations. - **ViewModels**: Contains `MainWindowViewModel`, implementing data binding and commands under the MVVM pattern. - **Views**: Contains the main window UI definition. - **Converters**: Contains value converters used for data binding. ## Usage Instructions 1. Launch the application 2. Click "Refresh Cameras" to detect available devices 3. Select a camera and click "Start" to begin previewing 4. Use the "Capture Photo" or "Record Video" functions to perform actions 5. Click "Stop" to turn off the camera ## Development Dependencies - .NET 6 SDK or later - Avalonia UI framework - OpenCvSharp4 NuGet package ## License This project uses the MIT License. Please refer to the [LICENSE](LICENSE) file for details. --- Please save the above content as a `README.md` file and commit it to the repository.