{"id":15132110,"url":"https://github.com/serdaraltin/fusion-vision","last_synced_at":"2026-01-19T04:32:55.757Z","repository":{"id":256094522,"uuid":"854310152","full_name":"serdaraltin/fusion-vision","owner":"serdaraltin","description":"This module dedicated to processing and analyzing visual data using advanced computer vision algorithms, primarily leveraging Kinect sensor data and OpenCV for real-time applications.","archived":false,"fork":false,"pushed_at":"2024-11-17T20:55:57.000Z","size":3388,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"dev","last_synced_at":"2025-04-05T21:16:46.844Z","etag":null,"topics":["3d-reconstruction","computer-vision","image-processing","kinect","motion-tracking","opencv"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/serdaraltin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-08T23:30:50.000Z","updated_at":"2024-11-17T20:56:00.000Z","dependencies_parsed_at":"2024-12-19T04:11:43.591Z","dependency_job_id":null,"html_url":"https://github.com/serdaraltin/fusion-vision","commit_stats":null,"previous_names":["serdaraltin/fusion-body","serdaraltin/fusion-kinect2"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/serdaraltin/fusion-vision","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/serdaraltin%2Ffusion-vision","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/serdaraltin%2Ffusion-vision/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/serdaraltin%2Ffusion-vision/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/serdaraltin%2Ffusion-vision/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/serdaraltin","download_url":"https://codeload.github.com/serdaraltin/fusion-vision/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/serdaraltin%2Ffusion-vision/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28561841,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T03:31:16.861Z","status":"ssl_error","status_checked_at":"2026-01-19T03:31:15.069Z","response_time":67,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3d-reconstruction","computer-vision","image-processing","kinect","motion-tracking","opencv"],"created_at":"2024-09-26T04:03:44.062Z","updated_at":"2026-01-19T04:32:55.743Z","avatar_url":"https://github.com/serdaraltin.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fusion Vision\n\n## Overview\n\nThe Vision application is a sophisticated device management system designed to interface with Kinect v2 sensors using the `libfreenect2` library. This application offers functionalities such as listing available devices, opening specific devices, and selecting devices for use. It incorporates a logging system to facilitate debugging and provide informative output throughout the device management process.\n\n## Features\n\n- **Device Management**: Automatically detect, list, and manage Kinect devices.\n- **Singleton Design Pattern**: Ensures a single instance of the `DeviceManager`.\n- **Configurable Logging**: Adjustable logging levels for better debugging and monitoring.\n- **Error Handling**: Robust status reporting for operations.\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Usage](#usage)\n- [Architecture](#architecture)\n- [File Descriptions](#file-descriptions)\n- [Classes and Functions](#classes-and-functions)\n- [Logging Levels](#logging-levels)\n- [Error Handling](#error-handling)\n- [Testing](#testing)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Installation\n\n### Prerequisites\n\nEnsure you have the following installed:\n\n- CMake\n- libfreenect2\n- A C++ compiler (e.g., g++, clang)\n\n### Steps\n\n1. **Clone the Repository**:\n\n   ```bash\n   git clone https://github.com/yourusername/vision.git\n   cd vision\n   ```\n\n2. **Install Dependencies**:\n\n   Follow the installation instructions for `libfreenect2` on your system.\n\n3. **Build the Project**:\n\n   ```bash\n   mkdir build\n   cd build\n   cmake ..\n   make\n   ```\n\n4. **Run the Application**:\n\n   ```bash\n   ./vision\n   ```\n\n## Usage\n\nUpon execution, the Vision application will automatically enumerate connected Kinect devices and log their information to the console. An example output would be:\n\n```\n[Info] [Vision] Console Logger initialized.\n[Info] [Vision] Listing Devices\n[Info] [Vision] Device 0: SERIAL_NUMBER_1\n[Info] [Vision] Device 1: SERIAL_NUMBER_2\n[Info] [Vision] Vision Finished.\n```\n\n## Architecture\n\nThe Vision application consists of several key components:\n\n- **Device Management**: Manages the lifecycle and interactions with Kinect devices.\n- **Logging System**: Logs important events and statuses to the console.\n- **Status Reporting**: Provides feedback on the outcomes of operations.\n\n### Diagram\n\n```plaintext\n+------------------+          +-------------------+\n|                  |          |                   |\n|  DeviceManager   |\u003c--------\u003e|   ConsoleLogger   |\n|                  |          |                   |\n+------------------+          +-------------------+\n        |\n        v\n+------------------+\n|                  |\n|   Kinect Device  |\n|                  |\n+------------------+\n```\n\n## File Descriptions\n\n- **config.h**: Contains configuration settings and application constants.\n- **device.h**: Defines the `Device` struct for holding device attributes.\n- **device_manager.h**: Declares the `DeviceManager` class for device management.\n- **console_logger.h**: Defines the `ConsoleLogger` class for logging.\n- **logger.h**: Abstract base class for logging utilities.\n- **status.h**: Contains definitions for operation statuses and result handling.\n- **main.cpp**: The entry point of the application, orchestrating the device management workflow.\n\n## Classes and Functions\n\n### `DeviceManager`\n\nHandles the detection and management of Kinect devices.\n\n#### Key Functions\n\n- **`static DeviceManager* getInstance()`**\n    - Returns the singleton instance of the `DeviceManager`.\n\n- **`Result listDevices(const std::vector\u003cDevice\u003e\u0026 devices) const`**\n    - Lists and logs all available devices.\n\n- **`Result openDevices(const std::vector\u003cDevice\u003e\u0026 devices)`**\n    - Opens specified devices for usage (implementation pending).\n\n- **`Result selectDevices(const std::vector\u003cint\u003e\u0026 ids)`**\n    - Selects devices by their IDs and logs their serial numbers.\n\n### `ConsoleLogger`\n\nImplements logging functionalities to the console.\n\n#### Key Functions\n\n- **`static ConsoleLogger* getInstance()`**\n    - Returns the singleton instance of the `ConsoleLogger`.\n\n- **`void log(Level level, const std::string\u0026 message)`**\n    - Logs messages at the specified logging level.\n\n### `Logger`\n\nAbstract class defining the logging interface.\n\n#### Key Functions\n\n- **`virtual void log(Level level, const std::string \u0026message) = 0`**\n    - Abstract logging method to be implemented by derived classes.\n\n### `Status`\n\nAn enumeration for operation statuses:\n\n- **Success**\n- **Error**\n- **InvalidParam**\n- **NotFound**\n\n## Logging Levels\n\nThe application supports several logging levels to control output verbosity:\n\n- **None**: No logging.\n- **Error**: Logs error messages.\n- **Warning**: Logs warnings.\n- **Info**: Logs general information.\n- **Debug**: Logs detailed debug information.\n\n## Error Handling\n\nThe application implements a structured error handling mechanism using the `Result` struct, which includes status codes and messages to aid in troubleshooting.\n\n## Testing\n\nUnit tests are included for critical components of the application. To run the tests, use:\n\n```bash\nmake test\n```\n\nEnsure your environment is set up correctly to support testing.\n\n## Contributing\n\nContributions are welcome! Please follow these steps:\n\n1. Fork the repository.\n2. Create a new branch for your feature or bugfix.\n3. Submit a pull request with a clear description of your changes.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fserdaraltin%2Ffusion-vision","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fserdaraltin%2Ffusion-vision","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fserdaraltin%2Ffusion-vision/lists"}